私はtcshを使用しています。 Tabを実行したときに現在のディレクトリがオートコンプリートされscp my
ず、完了する前にaを付けるmy-file.txt
必要があることがわかりました。./
これはただ起こるようですscp
。別のコマンドを試してみましたが、うまく動作しているようです。
私はこれが私に(つまり、現在のホスト名)scp
tabの価値を提供することを発見しました。$HOSTNAME
localhost
それで、ホスト名と一致させようとしているようですが、なぜそうなのかわかりません。
返信コメントを追加してください。
~/temp/test>ls -al
total 12
drwxr-xr-x 2 liw liw 4096 Jul 21 15:16 .
drwxr-xr-x 9 liw liw 8192 Jul 21 15:15 ..
-rw-r--r-- 1 liw liw 0 Jul 21 15:16 my_file.txt
~>more .cshrc.user
set prompt="%n@%m %~%#"
set path=($HOME/bin $path)
if (-o $HOME/.aliases) source $HOME/.aliases
set filec
set autolist
set autoexpand
set addsuffix
bindkey ^r i-search-back
~> complete scp
'c%*@*:%`set q=$:-0;set q="$q:s/@/ /";set q="$q:s/:/ /";set q=($q " ");ssh $q[2] -l $q[1] ls -dp $q[3]\*`%' 'c%*:%`set q=$:-0;set q="$q:s/:/ /";set q=($q " ");ssh $q[1] ls -dp $q[2]\*`%' 'c%*@%$hosts%:' 'C@[./$~]*@f@' 'n/*/$hosts/:'
答え1
complete
/ etcに特別なコマンドを定義するシステム全体のtcsh設定ファイルはほぼ確実ですscp
。これを確認する最も簡単な方法は、次のように入力することです。
complete
これにより、すべてのカスタム補完が一覧表示されます。カスタム補完ディレクティブはもう少し複雑ですが、scp
少なくとも1つの引数を使用している場合は、ファイルパスにホスト名を含めることを意図している可能性があります。その後、その謎を見つけたり追加したりできます。
uncomplete scp
~/.tcshrc
手動オーバーライドでコマンドを飛ばします。
答え2
オートコンプリートは、ホストファイルのすべてのエントリを一致させようとします。一度はオートコンプリート機能を実行して「sexyladies.com」を取得し、そのサイトにアクセスしたことがないため、システムが破損していると思いました。
これは本当ではありません。ブロックするWebサイトの約20,000項目を含むホストファイル設定があります。それで、オートコンプリートをするたびにそのリストを見てください。