scp は他のコマンドのようにオートコンプリートされません。

scp は他のコマンドのようにオートコンプリートされません。

私はtcshを使用しています。 Tabを実行したときに現在のディレクトリがオートコンプリートされscp myず、完了する前にaを付けるmy-file.txt必要があることがわかりました。./これはただ起こるようですscp。別のコマンドを試してみましたが、うまく動作しているようです。

私はこれが私に(つまり、現在のホスト名)scp tabの価値を提供することを発見しました。$HOSTNAMElocalhost

それで、ホスト名と一致させようとしているようですが、なぜそうなのかわかりません。

返信コメントを追加してください。

 ~/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手動オーバーライドでコマンドを飛ばします。

おすすめ記事