最近、使用しているプラグインの数を大幅に減らしているので、組み込みのVim機能のみを使用して回答を探しています。
たくさんのバッファーを編集しているときにワークフローの欠陥に気づいていました:バッファーを使用していて、名前を覚えていない代替バッファーではない別のバッファーに切り替えたい。したがって、使用:b#
は不可能であり、コマンドで補完を使用すること:b
も便利ではありません。
それをするために、私は次のことをしていました。
- 最初に使用
:buffers
して、開いているバッファのリストを取得します - 使用したいバッファの番号を覚えておいてください
- を押しEnterてバッファのリストを閉じます
- 使用する
:bX
とX
、使用するバッファの数。
このワークフローはかなり重いように思えたので、次の行をmyに追加しました
.vimrc
。
" Improve the navigation in the buffers
nnoremap <Leader><S-b> :B<CR>
command! B call Buffers()
function! Buffers()
execute "buffers"
let buffer=input("Enter a buffer:")
execute "b" . buffer
endfunction
これは、入力を待つ:B
関数を呼び出し、:buffers
最後に入力が:b
続く呼び出しを行うコマンド(およびマッピング)を提供します。
それはうまく機能しますが、私はそのような関数を開発しなければならなかったことに驚いています:通常、Vimはかなり効率的なデフォルトのワークフローを持っているので、他に何も知らないバッファに切り替えるより良い方法があるかどうか疑問に思っています編集セッションですでに開かれていること。
:b#
ように私が探しているものではありませんが、ええ前に:b
押すことなく直接入力することでキーストロークを節約できるという事実enter
は興味深いです。(実際、それは答えとしては軽すぎるかもしれませんが、コメントする価値がありました:
#
文字をリテラル#
文字ではなく(バッファ)番号の代用として意味していると推測しています。
:ls
その後に続きます:b#
(最初にリターンやエスケープを押す必要はありません、 'ls'のバッファリストから直接行くことができます。) '何かが欠けていると間違った質問に答えています。)