:shellを使用して、現在のディレクトリを入力し、コマンドを実行できます。bash_completionは正常に機能します。
しかし、bash_completionをどのように機能させるか:!コマンドまたは:r!コマンドケース?
注。私はEmacsユーザーでEmacsM-です!コマンドはそのようなことを許可しません(Mxシェルも、 bash_completionを取得するにはMx用語が必要です)。
:shellを使用して、現在のディレクトリを入力し、コマンドを実行できます。bash_completionは正常に機能します。
しかし、bash_completionをどのように機能させるか:!コマンドまたは:r!コマンドケース?
注。私はEmacsユーザーでEmacsM-です!コマンドはそのようなことを許可しません(Mxシェルも、 bash_completionを取得するにはMx用語が必要です)。
それは不可能。@Prince Goulashが参照しているのは、vim自体によって行われる単純なファイル名の補完です。bashを強制的に完了バリアントをパイプする方法を知っている場合は、カスタムコマンドの完了関数を作成して、組み込みを呼び出すことができますが :!
、組み込みコマンドの完了を再定義することはできません。
私は個人的にbashでこれを行う方法を知りません。また、zshでこれを行おうとするとcompadd
、pexpect(python)、Expect(perl)、expect(tcl)を使用して、zsh組み込みコマンド(など)を再定義するダーティハックが発生することを知っています。 、zsh / zptyまたはインタラクティブモードでシェルを実行し、zsh-> vim IPCメカニズムを発明するのに似たもの(反対方向でははるかに簡単です)(私はかつてzshの同様のモジュールで作業を開始しましたが、問題が多すぎたため停止しましたこのように)。
あなたは持っていますか
set nocompatible
あなたの.vimrcで?これにより、のex-mode完了が自動的に有効になります:!
。可能な完了のリストを表示するには、次を使用することもできます
set wildmenu
オプションを調査しwildmode
ます。