Vim:分割ウィンドウを失わずにバッファを削除します


149

バッファが削除されると( "bd [elete]"コマンド)、バッファが削除されるだけでなく、バ​​ッファがあった分割ウィンドウも削除されます。

バッファを削除/アンロードしてウィンドウを分割したままにする方法はありますか?



これは私にはうまくいきました。
Rumple Stiltskin、2010

[これDeleteCurBufferNotCloseWindow()はうまく機能し、かなり読みやすくなっています](stackoverflow.com/a/44950143/3625404)。
qeatzy 2017

回答:



326

bp|bd # それを行います。


詳細:(bp「前のバッファ」)は、現在のウィンドウの別のバッファに移動し(bnこれも機能します)、次にbd #(「バッファの削除」「代替ファイル」)は、移動したバッファを削除します。参照:help bphelp bdhelp alternate-file


71
このような単純なものを実行するのにスクリプト全体を必要としない、このようなものを私がどれほど長い間探し求めていたかはわかりません。私のvimrcで、私は今、これはCTRL + Cのためにマッピングされています:nnoremap <C-c> :bp\|bd #<CR>

11
を使用して再マップしようとしnmap <silent> <leader>d :bp|bd #<CR>ていE94: No matching buffer for #<CR>ますが、取得しています。
ファビオ・ペレス

22
|(例:bp\|bd)の前にバックスラッシュを置く
Mud

4
このためのプラグインをインストールする必要はないことはわかっていました。ありがとう!
Akash Agrawal

2
b#|bd #次/前のバッファではなく、最後に使用したバッファに切り替えます。ただし、がある場合は非表示のバッファーにジャンプするset hiddenので、それを回避するために、よりインテリジェントなBD関数を作成しました。
c24w 2014年

15

あなたは、あなたに以下を追加することができます.vimrc持っているBdような作業をbdしかし、ウィンドウ分割を触れず:

command Bd bp\|bd \#

これは、Mudの回答の補足として役立つと思いました


それがまさに私の.vimrcにあるものです。:)

また、バッファーのアンロード、削除、およびワイプのための3つのコマンドを追加できます。BUN bp \ | bun \#コマンド!BD bp \ | bd \#コマンド!BW bp \ | bw \#これは、bufkillが提供するものと同等ですが、700 +行のプラグインではなく、vimrcに3行あります。
fievel

3
私にとっては、これは.vimrcでのみ機能しましたcommand! Bd bp|bd #。上記の ``を使用したコマンドは、バッファーをバッファーリストに保持しました。
mljrg


3

@Mudと同様の処理を行いますが#、バッファリストの前のバッファではなく、前のビューバッファに切り替えます。ここに私のバインディングキーがあります.vimrc

nnoremap <silent> <leader>q :lclose<bar>b#<bar>bd #<CR>

[場所を閉じる]ウィンドウが存在する場合は、前のビューバッファーに切り替えてから、最後に切り替えたバッファーを閉じます。


1

私の選択は

:sb # | bd #
:sb 1 | bd #
: <1. Recall Buffer> | <2. Delete Buffer>

そのように考えなさい!/// <1。リコールバッファー> | <2。バッファを削除>

:vert sb 2 | bd #
:vert sb <tab key~completed file(buffer)name> | bd #

なぜ?!3(+ 1)キーワードを覚えるのは簡単です!

  1. sb split_buffer
  2. bdバッファ削除▶単純な2つのキーワード
  3. #またはバッファの数
  4. vert▶垂直のshort_form(split_bufferまたはそれ以外)

それは他の多くの場合に簡単で非常に便利です!

ごきげんよう!:)


0

以前使用していた:

:bp<bar>sp<bar>bn<bar>bd<CR>

しかし、それが私の窓を閉める特定の機会を見つけました。その上、次または前のバッファは、分割で表示したいものではない場合があります。

今私はこれをします:

  • 作業したいバッファに切り替えます
  • 代替バッファーを削除する

nnoremap <leader>d :bd#<CR>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.