18

Zshでは、ファイル名の補完とスラッシュを使用して、ソースツリーの奥深くにあるファイルをターゲットにすることができます。たとえば、次のように入力します。

 vim s/w/t/u/f >TAB<

zshはパターンを次のように置き換えます。

 vim src/wp-contents/themes/us/functions.php

私が欲しいのは、Vimコマンドラインで同じ方法でファイルをターゲットにできるようにすることです。

 :vi s/w/t/u/f >TAB<

次のようにオートコンプリートされます。

 :vi src/wp-contents/themes/us/functions.php

ワイルドモードのVimドキュメントを解析しようとしていますが、どの設定でこれが得られるかわかりません。個々のファイル名のオートコンプリートを実行しますが、ファイルパスは実行しません。Vimはこれをネイティブにサポートしていますか?または、ファイルのオートコンプリートアルゴリズムをカスタマイズするにはどうすればよいですか?

アドバイスありがとうございます!-mykle-

4

2 に答える 2

7

Vim にはデフォルトでそのような機能はありません。最も近いビルトイン機能は、wildmenu/wildmode コンボですが、それでも大きく異なります。

vim.org のスクリプト セクションをざっと見ても何も返されませんでしたが、私はあまり詳しく見ていませんでした。さらに掘り下げる必要があります。多分それはそこにある、どこかに。

Command-T、LustyExplorer、FuzzyFinder、CtrlP、または多くの同様のプラグインのいずれかを試しましたか?

私はCtrlPを使用しており、ファイルパスまたはファイル名に対してあいまい一致を実行できます。ファイルパスで完了したら、以下のキーシーケンスを使用して開くことができます(その下にある唯一のファイルがで始まるとsrc/wp-contents/themes/us/functions.php仮定します):functions.phpusf

,f " my custom mapping for the :CtrlP command
swtuf<CR>

編集

考えられる解決策について考えるとき、私は少し近視眼的だったと思います。私はあなたの正確な要件に焦点を当てましたが、Vim にはファイルを開く際のクールなトリックがあります!

この:e[dit]コマンドは 2 種類のワイルドカードを受け入れます:**シェルで使用するようなもので、 **「任意のサブディレクトリ」を意味します。

したがって、次のことが完全に可能です。

:e s*/w*/t*/u*/f*<Tab>

または次のようなもの:

:e **/us/f<Tab>

あるいは:

:e **/fun<Tab>

ジムの回答のワイルドモード設定と組み合わせると、かなり強力なファイル ナビゲーション ツールがここにあると思います。

于 2013-03-23T07:20:59.433 に答える