
私のzshオートコンプリート機能は奇妙な方法で破損しています。きちんとしたログインの場合、すべてがうまく機能しますが、しばらくすると、さまざまな「種類」のオートコンプリートに対してランダムなオートコンプリートエラーが発生するようです。時にはls foo<tab>
動作しますが、rm foo<tab>
動作しません。私はこれをデバッグする方法を知りません。
この問題を引き起こす特定のコマンドのパターンが見つかりません。私はまた、何がうまくいき、何がうまくいかないのかについてのパターンを見ません。私は日常業務でgnuモジュールを使用し、make、コンパイラ、nanoなどを実行します。
オートコンプリート時に発生するエラーは次のとおりです。
/bin/zsh:4: _main_complete: function definition file not found
または
(eval):1: _autocd: function definition file not found
(eval):1: _autocd: function definition file not found
(eval):1: _autocd: function definition file not found
_main_complete:173: _ignored: function definition file not found
_main_complete:173: _ignored: function definition file not found
_main_complete:173: _ignored: function definition file not found
または
(eval):1: _rm: function definition file not found
(eval):1: _rm: function definition file not found
(eval):1: _rm: function definition file not found
_sudoと_moduleについて同様のメッセージを見ました。
私は、デフォルトのファイルシステムがnfsにあるシステムの複数のスクリーンセッションでzsh(5.0.2)とoh-my-zshを使用しています。ログインするたびにscreen -xrR
自動的にスクリーンセッションに接続されます。.zprofile
hostname
ログインするたびに、$HOME/.zcompdumpと$HOME/.zompdump--5.0.2の2つのファイルが作成されます。それらを削除しても違いはありません。
答え1
これはFPATH
変数ですfpath
。これらの変数のいずれかの値を確認してください。これはzshロード機能のディレクトリのリストでなければなりません。
変数FPATH
とfpath
は互いに関連しています(たとえば、PATH
およびpath
)。ある変数を変更すると、他の変数にも影響します。大文字FPATH
は、コロンで区切られたディレクトリのリストを含む文字列です。小文字はfpath
ディレクトリ配列です。
これらの名前が変数として使用できる場所があるかどうかを開始スクリプトを確認してください。変数名リストの確認置くまたは使用されるzsh( man zshparam
) で他の目的に何も使用しないことを確認してください。
完成機能は自動的にロードされます。つまり、最初の使用時にロードされます。たとえば、シェルインスタンスで完了操作を完了すると、表示されなくなります。操作は機能し_main_complete: function definition file not found
ましたが_main_complete
、このメッセージの処理が停止すると、何か奇妙なことが発生しました。