別の StackOverflow ユーザー Conner からこのコードを取得しました。この質問から、NERDTree と TagList が最後で唯一のバッファーである場合、Vim を自動的に終了します。
(その質問についてコメントするオプションがなかったので、私の唯一のオプションは新しい質問をすることでした)。
問題は、残りの 2 つのバッファーが NERDTree と TagList だけの場合、(Linux Mint で) Vim エディターを閉じるにはどうすればよいかということです。
提供された答えは次のとおりです。
" If only 2 windows left, NERDTree and Tag_List, close vim or current tab
fun! NoExcitingBuffersLeft()
if winnr("$") == 3
let w1 = bufname(winbufnr(1))
let w2 = bufname(winbufnr(2))
let w3 = bufname(winbufnr(3))
if (exists(":NERDTree")) && (w1 == "__Tag_List__" || w2 == "__Tag_List__" || w3 == "__Tag_List__")
if tabpagenr("$") == 1
exec 'qa'
else
exec 'tabclose'
endif
endif
endif
endfun
autocmd BufWinLeave * call NoExcitingBuffersLeft()
しかし、それは正しく機能しません。最後の「エキサイティングな」バッファ(非NERDTreeまたは非TagListのバッファ)を閉じるたびに閉じますが、NERDTreeから新しいファイルを開こうとすると(「エクスプローラ」でファイル名をダブルクリックして)閉じます)。
正直なところ、このコードはよくわかりません。私はそれをいじってみましたが、望む結果を得ることができませんでした。
NERDTree エクスプローラーから新しいファイルを開いたときに、このコードを閉じないようにするにはどうすればよいですか?
コナー、そしてコミュニティの皆さん、ありがとう!