• 締切済み

cshにてファイル名補完の設定の仕方

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

みんなの回答

回答No.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)の補完ができないという意味でしたら、ちょっと原因不明です。

  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.4

>Linux で csh ってあまり使われていないのでしょうか? Linuxだとほとんどの場合、/bin/csh は /bin/tcsh へのシンボリックリンクになっていると思います。 いずれにせよ、過去の遺物なんで、bashとかzshに乗り換えたほうがいいと思います。 tcshだとして、 bindkey | cat -v | grep complete はどうなりますか? 何も出てこなければ、 bindkey '^I' complete-word

回答No.3

>残念ながら、環境変数 >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」で確認できます。)

noname#78439
質問者

補足

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

回答No.2

上記の設定でできるはずですが・・・ (RedHat6.2にて確認) 念のため、"~/.cshrc"に"set filec"を書き加えてみてください。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

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

noname#78439
質問者

補足

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

関連するQ&A

専門家に質問してみよう