0

私は MacBook で Vim を使用しています。簡単にするために、ファイル~/some_file.py~/some_other_file.py、および を~/user.py開いているとしましょう。macOS では、 に~ 展開され/Users/<username>ます。

その:b userため、Vim のコマンド ラインに入力してからタブを押して展開すると、直接ファイルに移動するのではなく、各ファイルを通過します~/user.py

この動作を防ぐ方法はありますか?

4

2 に答える 2

0

Linuxで問題を再現することはできません(チルダは私のvimの完了リストで解決されていないので、前に:b home教えてください)、しかし...~/home.py~/some_file.py

入力してみて:b user、Shift+Tabで完了します。その場合、私のvim(それが重要な場合は7.2.442)は、最後の一致で完了します。これは、あなたが望むものです。

于 2010-10-12T20:30:28.767 に答える
0

Vim の組み込みバッファー補完を変更することはできません。私が提案できる唯一のことは (これらのファイルを既にホーム ディレクトリから開く以外に) :b 、必要な補完を使用して独自のバージョンのコマンドを定義することです。それは次のようなものかもしれません:

function! CustomBufferComplete(a, l, p)
    let buf_out = ''
    redir => buf_out
    silent buffers
    redir END

    let buf_list = map(split(buf_out, "\n"), 'substitute(v:val, ' .
    \   '''^.*"\%(\~[/\\]\)\?\([^"]\+\)".*$'', "\\1", "g")')
    return join(buf_list, "\n")
endfunction

command! -nargs=1 -complete=custom,CustomBufferComplete B b <args>

~/ (補完リストを返す前に、パスの一部を切り取ることに注意してください。)

于 2010-10-13T05:13:13.077 に答える