我设法配置zsh
这样当我使用 emacs 的自动完成功能时它不会建议 LaTeX 临时文件,方法是将这一行添加到我的~/.zshrc
:
zstyle ':completion:*:*:emacs:*:*files' ignored-patterns '*?.aux' '*?.bbl' \
'*?.blg' '*?.out' '*?.log' '*?.toc' '*?.snm' '*?.nav' '*?.pdf' '*?.bak' '*\~'
现在,当我请求补全 .zsh 时,zsh 会忽略所有 LaTeX 临时文件emacs
。
我怎样才能实现同样的目标svn add
?
到目前为止我只发现完成起来svn
相当复杂,甚至有一段时间被破坏了。在上面的例子中仅仅交换emacs
是行不通的,因为我需要影响 的add
参数的完成svn
。
答案1
这一行会给你你想要的:
zstyle ':completion:*:*:svn-add:*:*files' ignored-patterns '*?.aux' '*?.bbl' \
'*?.blg' '*?.out' '*?.log' '*?.toc' '*?.snm' '*?.nav' '*?.pdf' '*?.bak' '*\~'
从http://zsh.sourceforge.net/Doc/Release/Completion-System.html:
该命令或特殊的上下文,仅出现在 #compdef 标记或 compdef 函数之后。具有子命令的命令的完成函数通常会修改此字段以包含命令名称,后跟减号和子命令。例如,当完成 add 子命令的参数时,cvs 命令的完成函数会将此字段设置为 cvs-add。