【问题标题】:addsuffix behaviour in tcsh completetcsh 中的 adduffix 行为完成
【发布时间】:2017-07-17 16:10:27
【问题描述】:

我正在使用 Makefile 来转换文档。
要指定要转换的文档,我必须在 2 个 make-variables 中给出文件夹名称:
NAMEDATE
目录结构为/data/$(NAME)/$(DATE)

NAME 可以包含数字和字符。
DATE 遵循以下格式:YYYYMMDD_XXXXXXXX 其中X 是十六进制字符。
我想完整建议 tcsh 中的 NAMEDATE 变量(现场强制使用),因为输入那些随机的 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 如果设置,文件名补全会在目录末尾添加“/”,在正常文件完全匹配时添加空格。默认设置。

显然我想保留该行为(由用户设置)以供其他完成。

【问题讨论】:

    标签: tcsh tab-completion


    【解决方案1】:

    [后缀]是我想作废的。

    来自文档:

    完成 [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\/\1/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-01
      • 2019-02-21
      • 1970-01-01
      相关资源
      最近更新 更多