2017-03-24 21 views
1

私はホームディレクトリにフォルダhdd -> /hddを持っています。シンボリックリンク上のZsh lsタブ補完がシンボリックリンクに従っていません

ls -l hdd出力hdd -> /hdd。私はシンボリックリンクに従い、/hddの内容を表示することを期待しましたが、それは重要なポイントではありません。

ls -l hdd/は、期待通りに/hddの内容を出力します。その後、ls -l hdd/を示しタブ補完が続い

ls -l hd、その後、ENTERを押すと、コマンドls -l hddませls -l hdd/を実行します。したがって、/hddの内容ではなく、hdd -> /hddと表示されます。

なぜls -l hddタブが完了したときにコマンドが実行されるのですかls -l hdd/?一般的にはどちらが好ましいか?完成品を使わずに手動でls -l hdd/と入力した場合は、もちろん/hddの内容が表示されます。

答えて

1

これが原因デフォルト有効であるオプションAUTO_REMOVE_SLASHにある:完了から生じた最後の文字がスラッシュで、入力された次の文字が単語の区切りである場合には、

AUTO_REMOVE_SLASH
スラッシュ、またはコマンドを終了する文字(セミコロンまたはアンパサンドなど)の場合は、スラッシュを削除します。

あなたはまた、スラッシュ(および他で十分 - - 構成に応じて)ハイライトするzleを設定することができ

setop noautoremoveslash 

でそれを無効にすることができ、それは自動的に削除します。例えば、それはピンクと大胆ます

zle_highlight[(r)suffix:*]="suffix:fg=magenta,bold" 

:これは外部zsh-syntax-highlighting pluginと連携して動作しない場合があります。

関連する問題