Syntasticによって作成された完全な終了ロケーションリスト(LCL)と使用時にメインバッファーが作成されます。Q、:Q!または:WQ! vimで
質問
Syntastic Pluginを使用しています。変更できないエラー(警告)を備えたファイルがいくつかあります。エラーメッセージでファイルが開かれた場合、ファイル(バッファ)を締めくくると、q、エラーメッセージがまだ表示されているため(別のバッファー)、ファイルを編集するときに完全に終了するためにQを2回押す必要があります。
それでは、ファイルを含むバッファーを備えたファイルと、構文エラーを含む別のバッファ(ロケーションリスト)を使用して、Qを押すにはどうすればよいですか?私は少し検索しましたが、ロケーションリストを閉じるためのコマンドは :LCL.
Qでバッファを終了すると、そのバッファーのロケーションリストがアクティブな場合、内部のロケーションリストを閉じて、LCLを呼び出します。私はいくつか読んでいます autocmd BufLeave
と BufWinLeave
そして、このためのマッピングを作成しようとしていますが、2つの違いはわかりません。誰かが私を助けることができますか?
思い出す、 :w, :q, :q!, :wq
すべてが意図したとおりに機能する必要があります。
解決
エラーウィンドウがない場合でもLCLが機能するため、QをLCLとQにマッピングできます
cnoremap q<cr> \|lcl\|q<cr>
示唆されているように、略語はより良いようです
cabbrev q lcl\|q
(の前にに注意してください、それは略語を行わずに終了します)
他のヒント
私はこの質問が古く、答えがしばらく前に受け入れられたことを理解しています。受け入れられた答えを使ってみましたが、それ以上は機能しないようです。
しかし、私はそれから回避策を見つけました この質問, 、他の人はこれに駆け寄るべきですか。
基本的に、スクリプトを使用して、他の残りのウィンドウが開いているかどうかを確認し、最後の残りのウィンドウがロケーションリストであるかどうかをQuitします。
:autocmd WinEnter * if &buftype ==# 'quickfix' && winnr('$') == 1 | quit | endif
これは理想的ではないかもしれませんが、その間に十分に機能すると思います。