使用 zsh 中的大括号扩展更改完成行为

使用 zsh 中的大括号扩展更改完成行为

我已经习惯在大括号内使用制表符自动完成功能,而无需在 zsh 中扩展。当我使用带有基本 grml 配置的 zsh 时,这是可能的。由于我迁移到 oh-my-zsh,我无法重现此行为。

例子:

$ touch dir/{some_file,other_f<TAB>}

我想要的行为:

$ touch dir/{some_file,other_file}

我得到的行为:

$ touch dir/some_file dir/other_f

每当我为任何文件名按下 Tab 键时,选项卡都会扩展大括号,而不是自动完成,从而破坏了大括号扩展的目的。

我在联机帮助页和 zsh 站点中搜索了任何相关的答案,但找不到任何令人满意的内容。由于我对 zsh 还很陌生,所以我不确定到底要寻找什么。

如果您能指出在哪里可以找到与此问题相关的任何解释,我将不胜感激。预先感谢您提供任何有用的意见!

答案1

正如托尔在他的书中指出的那样评论,大括号中的自动完成功能仅起作用,直到您放置右大括号。

所以:

  • touch dir/{some_file,other_f<TAB>(没有结束括号!)自动完成文件名,所以你得到touch dir/{some_file,other_file

  • touch dir/{some_file,other_f<TAB>}(用右大括号!)首先展开大括号,所以你得到touch dir/some_file dir/other_f

相关内容