dポイントプレゼントキャンペーン実施中!

Linuxのcshにてファイル名補完の仕方を教えてください。
・bashで[TAB]
・Unixのcshで"set filec"で[ESC]
はできますが、Linuxのcshで"set filec"で[ESC]では補完されません。
LinuxはRHEL3.0U6を使用しています。
宜しくお願いします。

A 回答 (5件)

#3です。


念のため確認です。手元のRHEL2.1ASでは次のような挙動になりますが、
そちらの環境では異った結果になりますか?
(1)「cd /bin」したあと、「gr[TAB]」としても、「grep」と補完されない。
(2)「ls /bi[TAB]」としたときに「ls /bin」と補完される。
(1)の場合に補完されないという意味でしたら、cshとtcshの挙動の違いということになります。
「set autolist」または「set autolist=ambiguous」が、代わりの設定として使えそうな気がします。
(2)の補完ができないという意味でしたら、ちょっと原因不明です。
    • good
    • 0

>Linux で csh ってあまり使われていないのでしょうか?



Linuxだとほとんどの場合、/bin/csh は /bin/tcsh へのシンボリックリンクになっていると思います。
いずれにせよ、過去の遺物なんで、bashとかzshに乗り換えたほうがいいと思います。

tcshだとして、
bindkey | cat -v | grep complete
はどうなりますか?

何も出てこなければ、
bindkey '^I' complete-word
    • good
    • 0

>残念ながら、環境変数


>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」で確認できます。)

この回答への補足

ありがとうございます。
教えていただいた通り、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コマンドを知らないので、調べてみます。

補足日時:2006/03/03 10:05
    • good
    • 1

上記の設定でできるはずですが・・・


(RedHat6.2にて確認)

念のため、"~/.cshrc"に"set filec"を書き加えてみてください。
    • good
    • 0

実は csh と思っていたけど tcsh で, [tab] で補完できたりして.

この回答への補足

残念ながら、環境変数
SHELL=/bin/csh
が設定されており、[TAB]、[ESC]ともなにも変わりません。
Linux で csh ってあまり使われていないのでしょうか?

補足日時:2006/03/02 13:29
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!