在 tcsh complete 中添加后缀行为
addsuffix behaviour in tcsh complete
我正在使用 Makefile 来转换文档。
要指定要转换的文档,我必须在 2 个生成变量中提供文件夹名称:
NAME
和 DATE
.
目录结构为/data/$(NAME)/$(DATE)
NAME
可能包含数字和字符。
DATE
遵循以下格式:YYYYMMDD_XXXXXXXX
其中 X
是一个十六进制字符。
我想完全建议 tcsh 中的 NAME
和 DATE
变量(现场强制使用),因为输入那些随机的 X 字符很烦人。
我最终得到以下建议 NAME
变量:
'c@{NAME}=@D:/data@' \
'C/N*/(NAME=)/'
只要我这样做就可以正常工作 unset addsuffix
。
make N[TAB] » make NAME=[TAB] » make NAME=10001.1
如果设置了 addsuffix
,光标将在 make NAME=
.
中的尾随空格之后
对于 complete
一个新词开始,所以它不会向我建议 NAME
的目录。
如果我转到 NAME=
,它还会将结尾的 /
添加到文件夹名称中,这是不需要的。
有没有办法为这些完成禁用此行为?
tcsh.org 状态:
addsuffix If set, filename completion adds `/' to the end of directories and a space to the end of normal files when they are matched exactly. Set by default.
显然我想保留行为(由用户设置)以供其他完成。
[后缀]是我要作废的
来自文档:
complete [command [word/pattern/list[:select]/[[suffix]/] ...]]
所以我最后得到
complete make \
'c@NAME=@D:/data/@' \
'c@DATE=@`echo $COMMAND_LINE | sed -f /data/sandbox/sbulka/tmp/sed-tmp.sed | xargs ls`@' \
'C/N*/(NAME=)//' \
'n/NAME=/(DATE=)//'
sed 在一个文件中,所以我不必费心引用。看起来像这样:
s/^.*NAME=\([^ ]*\).*$/\/data\//
我正在使用 Makefile 来转换文档。
要指定要转换的文档,我必须在 2 个生成变量中提供文件夹名称:
NAME
和 DATE
.
目录结构为/data/$(NAME)/$(DATE)
NAME
可能包含数字和字符。
DATE
遵循以下格式:YYYYMMDD_XXXXXXXX
其中 X
是一个十六进制字符。
我想完全建议 tcsh 中的 NAME
和 DATE
变量(现场强制使用),因为输入那些随机的 X 字符很烦人。
我最终得到以下建议 NAME
变量:
'c@{NAME}=@D:/data@' \
'C/N*/(NAME=)/'
只要我这样做就可以正常工作 unset addsuffix
。
make N[TAB] » make NAME=[TAB] » make NAME=10001.1
如果设置了 addsuffix
,光标将在 make NAME=
.
中的尾随空格之后
对于 complete
一个新词开始,所以它不会向我建议 NAME
的目录。
如果我转到 NAME=
,它还会将结尾的 /
添加到文件夹名称中,这是不需要的。
有没有办法为这些完成禁用此行为?
tcsh.org 状态:
addsuffix If set, filename completion adds `/' to the end of directories and a space to the end of normal files when they are matched exactly. Set by default.
显然我想保留行为(由用户设置)以供其他完成。
[后缀]是我要作废的
来自文档:
complete [command [word/pattern/list[:select]/[[suffix]/] ...]]
所以我最后得到
complete make \
'c@NAME=@D:/data/@' \
'c@DATE=@`echo $COMMAND_LINE | sed -f /data/sandbox/sbulka/tmp/sed-tmp.sed | xargs ls`@' \
'C/N*/(NAME=)//' \
'n/NAME=/(DATE=)//'
sed 在一个文件中,所以我不必费心引用。看起来像这样:
s/^.*NAME=\([^ ]*\).*$/\/data\//