vim: マップされたキーストロークに対してタブ補完キーを送信する

vim: マップされたキーストロークに対してタブ補完キーを送信する

プラグインをインストールせずにバッファを切り替えるには、次のように入力するのが良い方法です。

:b <tab>

ステータス バーに現在のバッファー名がすべて表示され、カーソル キーを使用して 1 つを選択して Enter キーを押すことができます。

しかし、:b <tab> は 5 回のキーストロークなので、これを <leader> にマップしたいと思います。

しかし、以下の設定は機能しません。

:nnoremap <Leader>. :b <Tab>

ステータス バーに「:b ^I」と表示されますが、実際にはステータス バー上のバッファー名は開きません。

理由を知っている人はいますか?

答え1

設定を行う必要がありますwildcharm。以下を試してください:

set wildcharm=<Tab>
nnoremap <leader>. :b <Tab>

少なくともここではこれで機能します。

答え2

<tab>それはの本当の議論ではないということと関係があると思います:b

タブをドロップすると、nnoremap <leader>. :b<space>ヒットして<tab>メニューが表示されます。

メニューを呼び出すには 3 回のキーストロークが必要ですが、<tab>正しいバッファを選択して を押すには、さらに何回もキーを押さなければならない<CR>場合があります。1 番目のバッファが必要な場合は最低 4 回のキーストロークが必要ですが、これはかなり便利ですが、7 番目または 12 番目のバッファが必要な場合はどうでしょうか。

別の方法を提案してもよろしいでしょうか?

nnoremap <leader>. :ls<CR>:b<Space>

このマッピングでは、バッファのリスト ( :ls) が表示され、:bコマンドが開始され、引数としてバッファ番号を待機します。これは、,.5<CR>ジャンプ先のバッファに応じて 4 回のキーストローク ( ) です (バッファが 10 個以上ある場合は 5 回のキーストロークになりますが、要点は理解していただけると思います)。

単一のキー (またはその他) をマッピングする以外に、これを短くする方法がわかりません<F11>

関連情報