Syntasticによって作成された完全な終了ロケーションリスト(LCL)と使用時にメインバッファーが作成されます。Q、:Q!または:WQ! vimで

StackOverflow https://stackoverflow.com/questions/4134027

  •  30-09-2019
  •  | 
  •  

質問

Syntastic Pluginを使用しています。変更できないエラー(警告)を備えたファイルがいくつかあります。エラーメッセージでファイルが開かれた場合、ファイル(バッファ)を締めくくると、q、エラーメッセージがまだ表示されているため(別のバッファー)、ファイルを編集するときに完全に終了するためにQを2回押す必要があります。

それでは、ファイルを含むバッファーを備えたファイルと、構文エラーを含む別のバッファ(ロケーションリスト)を使用して、Qを押すにはどうすればよいですか?私は少し検索しましたが、ロケーションリストを閉じるためのコマンドは :LCL.

Qでバッファを終了すると、そのバッファーのロケーションリストがアクティブな場合、内部のロケーションリストを閉じて、LCLを呼び出します。私はいくつか読んでいます autocmd BufLeaveBufWinLeave そして、このためのマッピングを作成しようとしていますが、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

これは理想的ではないかもしれませんが、その間に十分に機能すると思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top