0

vim と vim-airline では、バッファーが存在する場合はそれを閉じ、存在しない場合は vim を閉じたいという状況があります。

そのため、速度の理由から最初にリマップ:xしました。;x

nnoremap : ;

;x次に、vim-airline で開いたバッファを閉じるようにマッピングしました

nnoremap :x :bp <BAR> bd #<CR>

問題は、最終的にすべてのバッファを閉じたときに、;xvim を終了するために使用できないことです。

vim-airline にバッファが存在するかどうかを確認して閉じる方法はありますか? この投稿を見ましたが、NERDTree の詳細です。

4

1 に答える 1

1

問題:コマンドの元の値を呼び出すnnoremap : ;ようにキーが変更されます。つまり、 、、またはに一致する次の文字にスキップします。を使用する場合は、逆に再マッピングする必要があります: 。:;fFtT;xnnoremap ; :

nnoremap :x ...:その後、 forの元の値が使用されるため:x、すべてが正常に機能するはずです。nmap ;x ...代わりに、安全性は劣りますが、 の再定義された値を呼び出すことができます:(また、 、 、 、またはそれらの非再帰バリアントを指定した場合は、 の再定義された値も呼び出される可能性があります) xmap! xcmap xlmap x

また、:bdVim を閉じず、バッファとウィンドウのみを閉じます。最後のバッファーを使用している場合は、新しい名前のないバッファーにダンプされます ( のように:enew)。バッファまたは Vim を閉じるには:q、それが目的です。

(また、「バッファが vim-airline に存在する」という意味がわかりません。Airline はステータス バー プラグインです。バッファは存在するかどうかのどちらかです。この 2 つは、少なくともある意味で互いに何の関係もありません。それは私には明らかです。)

于 2015-01-27T01:22:27.103 に答える