- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:zshのtab補完について)
zshのtab補完について
このQ&Aのポイント
- zshのtab補完についての問題と解決策について説明します。
- 問題点として、"./"に続く補完で、実行権限なしのファイルが補完候補にならないことや、$PATHにある実行ファイルが補完候補になることが挙げられます。
- 解決策として、zshの設定ファイルである.zshrcに特定のオプションを追加することで、問題を解決することができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
(1) "./"に続く補完で、実行権限なしのファイルも補完候補にしたい。 でも、「./main2.sh」ではpermission deniedで実行できないから、補完されても意味無いですよね? ./main2.shと実行したいのなら、面堂でも chmod +x main2.sh 等と実行権限を設定することが必要です。 有効なものだけ候補に出す、というのは、理にかなった方法だと思います。 コマンドが入るべきところでは、候補にはなりませんが、ファイル名が入るべきところでは、./main2.sh もちゃんと候補になります。 % ./main[TAB] # では main1.sh # だけが候補 % cat ./main[TAB] # では main1.sh main2.sh # main2.shも候補になる (2) $PATHにある実行ファイルを補完候補にしない。 sh の引数として、PATH上のファイルを指定できるのは仕様ですから、候補として挙がっても間違いではありません。 sh ./ma[TAB] というように、相対パス、または絶対パスで書けば、PATHは探しにいきません。 あとは、shの補完設定を変更することでしょうか。
お礼
ご回答ありがとうございます。 やはり仕様の部分もあるのですね。 bashやtcshと違い、 かなり踏み込んで補完の自動判別がされるなぁと感じたのですが、 これは慣れれば、むしろ良い機能なのかもしれません。 ひとまずお礼までに。