Bash オートコンプリートに vim コマンドを使用する

Bash オートコンプリートに vim コマンドを使用する

vimBashでは、2つのディレクトリよりも深いパスを含むコマンドを実行すると、最近のパスオートコンプリート機能が機能しなくなりました(およびls他のコマンドの場合は予想どおりに機能し続けましたcd)。

たとえば、入力ls .config/btsync/btしてTABを押すとls .config/btsync/btsync.conf

を入力してvim .config/btTABを押すvim .config/btsync/

ただし、入力してTABを押すと何も起こりません。 (上記の例のようvim .config/btsync/btに拡張したいと思います。vim .config/btsync/btsync.confls

私のユーザーとして実行するときとsuで実行するときに同じ問題があります。

私は読んだこの投稿以前のバージョンのbash-completion関連の問題が言及されていますが、2.1-5を実行しています。

アップデート:いくつかの追加テストを経た後の根本的な問題はbashですただファイル名ではなく、完全なディレクトリ名です。

bash-completionアップデート:これが全体的な理由であることがわかりました。許可された回答についての2番目のコメントを参照してください。

この動作の潜在的な原因について提案をいただきありがとうございます!

ベストアンサー1

私はあなたのためにもう少し調査した結果、これが私が見つけたものです。オートコンプリートの鍵はコマンドbashですcomplete。使用ルールを印刷できますvim

complete -p vim

繰り返しますが、次の方法でこれらの特定のルールを削除できます。

complete -r vim

このコマンドはそれをデフォルト値(追加のロジックなしで一般的なパスとファイル名の完成)にリセットします。これはあなたが望むものかもしれません。

詳細については、コマンドのセクションを確認help completeまたは参照してください(bash組み込み機能なので、bashのマンページに文書化されています)。man bashcomplete

bash最後の注意 - ログインするたびにvimルールを削除したい場合は、上記の変更は現在のセッションにのみ影響complete -r vimします~/.bashrc

役に立ったことを願っています:)

おすすめ記事