Tcsh
scp 不會像其他命令那樣自動完成
我正在使用 tcsh。我發現當我執行
scp my
選項卡時,它不會自動完成到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/:'
幾乎可以肯定在 /etc 中有一個系統範圍的 tcsh 配置文件,它有一個
complete
為scp
. 最簡單的檢查方法是輸入complete
這將列出所有自定義完成。自定義完成指令有點複雜,但目的可能是如果您使用
scp
至少一個參數,則希望在文件路徑中有一個主機名。然後,您可以嘗試找出該奧秘,或者只是添加uncomplete scp
到您
~/.tcshrc
並手動覆蓋該命令。