回答:
何も変更せずに、そのプロンプトから最も簡単な方法は、おそらく:b
+番号+ を押すことEnterです。しかし、ここで少し近道として、私(および他の多くの人々)が使用している方法を紹介します。
:nnoremap <leader>ls :ls<cr>:b<space>
<leader>ls
未使用のノーマルモードキーコンボで置き換えることができます。キーを押すと、バッファリストが表示され、EnterそのPress ENTER...
プロンプトを処理せずに+ を入力できます。
更新: OPは:ls
完全に上書きしたいと考えています。それはで行うことができます
:cnoremap ls ls<cr>:b<space>
ただし、コマンドまたは検索語に「ls」が入力された場所ではマッピングが行われるため、これはお勧めできません。(警告についてはPeter Rinckerに感謝します。)"ls"を入力する前に+ を入力することでこれを克服できます(たとえば、 "丘"を検索する場合に必要です)。コマンドや検索語で発生する可能性が低いキーコンボを選択することをお勧めします。Vimのヘルプでは、彼らはとても「_ls」との例があります。CtrlV/hil^Vls
:cnoremap _ls ...
cmap
検索などの他のコマンドライン「モード」で拡張できるので、には注意してください/
。
:find utils
D:それはLS含まれているため、
Ctrl-V
は、cマップされた文字を入力する前に入力することを推奨しています:find uti^Vls
。まだ苦痛ですが、私にはまだより良いアプローチがありません。おそらく、代わりにマップする:lsx
か:lsq
、の代わりにそれを使用することに慣れることができます:ls
。( "lsx"と "lsq"は実際のコマンドや検索では表示されない可能性があります。)
vimをまったく構成しなくても、希望するワークフローに近いワークフローを取得できます。
<C-^>
(ctrl
+ 6
)を使用してn番目のバッファにジャンプできます。
の出力を表示しているときに数字を入力するとls
、その数字が保存され、次のコマンドに渡すことができます。
偽のvimスクリーンショットを作成するために、数行しか表示されないようにフォントサイズを大きくし、次のリスト文字を設定しました。
execute("set listchars=eol:\xc2\xac,tab:>\\ ,trail:\xe2\x81\x9b,extends:>,precedes:<,space:\\ ")
だから、あなたがするなら
$ mkdir -p /tmp/vim-example
$ cd /tmp/vim-example
$ vim ./a ./b
その後、画面は次のようになります。
¬
~
~
~
~
~
./a 0,0-1 All
"./a" [New File]
を押すとファイルを見ることができます:ls<cr>
。
:ls
1 %a "./a"
line 1
2 "./b"
line 0
Press ENTER or type command to con
tinue
そこからタイプする2
と<C-^>
、次のバッファに移動します。
¬
~
~
~
~
~
./b 0,0-1 All
"./b" [New File]
:ls
、:ls<cr>:b<space>
(あなたの例から)ネイティブにラップすることは可能ですか?新しい関数を追加するのではなく、上書きしようとしているのです。ありがとう