Shell 更喜欢引用而不是转义来完成ZSH
ZSH是一个很棒的shell,所有为它编写的优秀的自动完成脚本都使它易于学习和使用 但是,我不喜欢自动完成将使用Shell 更喜欢引用而不是转义来完成ZSH,shell,zsh,quoting,Shell,Zsh,Quoting,ZSH是一个很棒的shell,所有为它编写的优秀的自动完成脚本都使它易于学习和使用 但是,我不喜欢自动完成将使用foo\bar而不是'foo-bar' 有什么方法可以改变这种行为吗?更多的是注释,但需要更好的格式,所以这里开始 我相信这在ZLE中应该是可能的,但我不知道是否已经有代码可用于此目的,而且自从我上次编程较低级别的ZLE以来已经有一段时间了,所以我没有时间刷新并自己编写代码 然而,这在已经使用stock函数的情况下是可能的。我说的是: 由于它无条件引用了单词,将tab绑定到它显然是个坏
foo\bar
而不是'foo-bar'
有什么方法可以改变这种行为吗?更多的是注释,但需要更好的格式,所以这里开始 我相信这在ZLE中应该是可能的,但我不知道是否已经有代码可用于此目的,而且自从我上次编程较低级别的ZLE以来已经有一段时间了,所以我没有时间刷新并自己编写代码 然而,这在已经使用stock函数的情况下是可能的。我说的是: 由于它无条件引用了单词,将tab绑定到它显然是个坏主意,但您可以绑定其他内容,比如alt tab:
autoload -Uz quote-and-complete-word
zle -N quote-and-complete-word
bindkey '^[^I' quote-and-complete-word
(或换档选项卡的^[[Z
)
当您需要完成引用的内容时,请按alt tab。请注意,完成后,光标将位于引号内,您需要向右移动一个字符以保留引号,因此不幸的是,即使作为变体,它也不理想。为什么您希望zsh修改您在命令行上已经键入的内容?这不是我直觉认为的“完成”。。还有,为什么反斜杠会伤害你?ZLE可以完全修改命令行上已经键入的内容,引用比转义更令人赏心悦目,因此这是一个可以理解的问题。是否有
引号和complete word
的变体不引用不需要引用的内容?
autoload -Uz quote-and-complete-word
zle -N quote-and-complete-word
bindkey '^[^I' quote-and-complete-word