Vim はバッファを閉じますが、ウィンドウは分割されません 質問する

Vim はバッファを閉じますが、ウィンドウは分割されません 質問する

水平/垂直に分割された 2 つのバッファがあり、そのうちの 1 つを閉じたいが、ウィンドウは閉じたくない場合。分割されたウィンドウの場所を、バッファを閉じる前と同じままにしておきたい。

:bd を押すと、バッファが閉じられていたウィンドウも閉じられます。

ベストアンサー1

@RusAlex と同様に、私はプラグインが好きではありません。また、入力したコードが実際に何をするのかを知りたいのです。

nmap ,d :b#<bar>bd#<CR>

要するにこれは、キー シーケンスを待機する vim の通常モードにキー マッピングを追加します,d。これを実行すると、以前に開いていたバッファーに切り替え、切り替えたバッファーを削除しようとします。

オフスクリーン バッファを削除すると、画面はそのまま分割されたままになります。

コマンドは、スペースで区切られた 3 つの部分で構成されます。

  • nmap- 通常モードのキーマッピングを追加/変更
  • ,d- 反応するキーシーケンス。最初,(カンマ)、次にd
  • :b#<bar>bd#<CR>- 実行するキーシーケンス

実行されるコマンドは 5 つの部分で構成されます。

  • :- vimをコマンドラインモードに切り替える
  • b#- 以前に開いたバッファにウィンドウを切り替える
  • <bar>- 後続のコマンドを期待します。|(パイプ文字)を表します。コマンドの連鎖に使用されます。
  • bd#- 以前開いたバッファ、つまり、切り替えたばかりのバッファを削除します。
  • <CR>- コマンドを実行します。基本的にはキーReturnまたはEnter

コマンドは、 のような設定ファイルで使用される形式です~/.vimrc。vim 内からマッピングを追加する場合は、先頭に:(コロン) を追加します。すると、vim を終了するときにマッピングが失われます。

:nmap ,d :b#<bar>bd#<CR>

-- INSERT --vim を開くと、通常は挿入モード (を押すと画面の下部に で表示されますi)、ビジュアルモードなどではなく、通常モードになります。innは、nmap通常モードにのみ追加されるキーマッピングを指定します。マッピングの詳細については、ここ

重要な注意事項:

  • b#それが唯一の既知のバッファである場合、現在のバッファに切り替えます。
  • b#非表示または閉じられたバッファ(たとえば、 を押して閉じたバッファ)に切り替えることができます,d
  • bd#現在のバッファが唯一の既知のバッファである場合は、そのバッファを閉じて画面を分割解除し、空のバッファを残します。
  • bd#切り替え先のバッファが非表示/閉じられたバッファである場合は失敗します。
  • bd#別のウィンドウに切り替えた後にバッファが閉じていることが示された場合でも、分割は解除されます。

その他の注意事項:

  • :windo b#すべてのウィンドウを以前に開いたバッファに切り替えます。 との組み合わせ方法がわかりませんbd
  • <CR>省略することもできますが、その場合は手動でReturnまたはを押しEnterて実行する必要があります。
  • :nmap ,で始まるすべての通常モード マッピングを表示します,
  • :ls開いているバッファを一覧表示します。

おすすめ記事