2017-07-17 74 views
0

我正在使用Makefile來轉換文檔。
要指定要轉換的文檔,我必須在2個生成變量中給出文件夾名稱:
NAMEDATE
目錄結構/data/$(NAME)/$(DATE)tcsh中的addsuffix行爲完成

NAME可以含有數字和字符。
DATE格式如下:YYYYMMDD_XXXXXXXX其中X是一個十六進制字符。
我想要完整的建議tcsh中的NAMEDATE變量(酒店強制使用),因爲它是煩人進入這些隨機的X字符。

我結束了具有以下建議我NAME變量: '[email protected]{NAME}[email protected]:/[email protected]' \ 'C/N*/(NAME=)/'

這個工作過程,只要我做unset addsuffix預期。
make N[TAB] » make NAME=[TAB] » make NAME=10001.1
如果設置了addsuffix,則光標將位於make NAME=中的尾隨空格之後。
對於complete一個新字開始,所以它沒有提示我要NAME的目錄即可。 如果我去NAME=那麼它也會將尾部/添加到不需要的文件夾名稱。

有沒有一種方法來禁用此行爲對於這些完井?
tcsh.org狀態:

addsuffix如果設置,文件名完成增加'/」到目錄的結尾,當他們被精確匹配的普通文件後面加上一個空格。默認設置。

顯然我想保持其他完成的行爲(由用戶設置)。

回答

0

的[後綴]是什麼,我想是無效的。

從文檔:

完整 [命令[文字/圖形/列表[:選擇]/[後綴] /] ...]]

所以我最終與 complete make \ '[email protected][email protected]:/data/@' \ '[email protected][email protected]`echo $COMMAND_LINE | sed -f /data/sandbox/sbulka/tmp/sed-tmp.sed | xargs ls`@' \ 'C/N*/(NAME=)//' \ 'n/NAME=/(DATE=)//'

該sed是在一個文件中,所以我不必打擾引用。看起來是這樣的: s/^.*NAME=\([^ ]*\).*$/\/data\/\1/