- 締切済み
cshにてファイル名補完の設定の仕方
Linuxのcshにてファイル名補完の仕方を教えてください。 ・bashで[TAB] ・Unixのcshで"set filec"で[ESC] はできますが、Linuxのcshで"set filec"で[ESC]では補完されません。 LinuxはRHEL3.0U6を使用しています。 宜しくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- shuyamakawa
- ベストアンサー率67% (111/164)
#3です。 念のため確認です。手元のRHEL2.1ASでは次のような挙動になりますが、 そちらの環境では異った結果になりますか? (1)「cd /bin」したあと、「gr[TAB]」としても、「grep」と補完されない。 (2)「ls /bi[TAB]」としたときに「ls /bin」と補完される。 (1)の場合に補完されないという意味でしたら、cshとtcshの挙動の違いということになります。 「set autolist」または「set autolist=ambiguous」が、代わりの設定として使えそうな気がします。 (2)の補完ができないという意味でしたら、ちょっと原因不明です。
- notnot
- ベストアンサー率47% (4900/10359)
>Linux で csh ってあまり使われていないのでしょうか? Linuxだとほとんどの場合、/bin/csh は /bin/tcsh へのシンボリックリンクになっていると思います。 いずれにせよ、過去の遺物なんで、bashとかzshに乗り換えたほうがいいと思います。 tcshだとして、 bindkey | cat -v | grep complete はどうなりますか? 何も出てこなければ、 bindkey '^I' complete-word
- shuyamakawa
- ベストアンサー率67% (111/164)
>残念ながら、環境変数 >SHELL=/bin/csh >が設定されており、[TAB]、[ESC]ともなにも変わりません。 「ls -l /bin/*sh」した時、cshはtcshのシンボリックリンクになっていませんか?(手元のRHEL2.1ASではそうなっています。) もしtcshなら、filecの有無に関係なくファイル名補完が有効なはずです。 思いつく確認点としては、、、。 (1)bindkeyコマンドでキーカスタマイズしている。(「bindkey | grep '\^I'」とか「bindkey | grep 'complete'」とかで確認してみてください。 (2)completeコマンドで補完をカスタマイズしていて、その補完文法にバグがある。(現在の設定は「complete」で確認できます。)
- celica182b
- ベストアンサー率40% (279/690)
上記の設定でできるはずですが・・・ (RedHat6.2にて確認) 念のため、"~/.cshrc"に"set filec"を書き加えてみてください。
- Tacosan
- ベストアンサー率23% (3656/15482)
実は csh と思っていたけど tcsh で, [tab] で補完できたりして.
補足
残念ながら、環境変数 SHELL=/bin/csh が設定されており、[TAB]、[ESC]ともなにも変わりません。 Linux で csh ってあまり使われていないのでしょうか?
補足
ありがとうございます。 教えていただいた通り、csh は tcsh のリンクされていました。 (かなりビックリ。sh も bash になんですね。) (1)[bindkey | cat -v | grep complete]の結果は "^I" -> complete-word "^M-I" -> complete-word "^M-[" -> complete-word "^[^I" -> complete-word "^[^[" -> complete-word "^X^I" -> complete-word-raw (2)completeコマンド結果 何も出力されず。 bindkeyコマンド、completeコマンドを知らないので、調べてみます。