2017-07-17 37 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/