我想使用扩展mv 'foo bar' !#:1:s^\ ^-^
来生成命令mv 'foo bar' 'foo-bar'
。但是当我按下空格键时,zsh 会认为我已经完成了扩展的输入,因此我只能使用mv 'foo bar' !#:1:s^\
which来生成命令mv 'foo bar' 'foobar'
。
我可以通过键入mv 'foo bar' !#:1:s^\^-^
然后使用箭头键回溯来获得来规避这种行为mv 'foo bar' !#:1:s^\ ^-^
,但这违背了目的。
我怎样才能关闭空格键上的扩展行为?我想我想要的行为是让命令保持未扩展状态,直到我按下 Enter 键。我在手册页中没有找到有关此内容的任何信息zshexpn
。
编辑:我发现我可以输入mv 'foo bar' !{#:1:s^\ ^-^}
,这会阻止扩展,直到}
输入 。但如何防止空格键上出现扩展行为的问题仍然存在。
答案1
似乎您已将空格键绑定到magic-space
,因为介绍嘚解释:
如果将 space 绑定到 magic-space,则每当您按下空格键时,就会在该行上完成 csh 样式的历史记录扩展。
因此,删除该行
bindkey " " magic-space
从你的配置中。或者(如果你使用一些预定义的配置文件,如哦我的天啊)确保在所有其他键绑定之后执行以下命令:
bindkey " " self-insert