在zsh
中,组合键Alt+.绑定到insert-last-word
,它将在当前命令行中插入上一个命令的最后一个参数。
我正在寻找一个与Alt+类似的键绑定/快捷方式.,除了它会将前一个命令中的所有参数粘贴到命令行上。
我知道我可以输入!*
,zsh 会将其解释为“重用上一个命令中的所有参数”。但这并不是我想要的。此外,它实际上并没有粘贴参数以便我可以看到它们,zsh 只是!*
这样解释。我可以点击Tab让它扩展,但这是另一个必要的命令。
我宁愿将其作为Alt+之类的组合键something,而不必键入 '!*' 并点击制表符
我怎样才能做到这一点 ?
更新
在广泛使用小部件几年后,我发现了一些困扰我的事情:(我将小部件绑定到Alt+ /)
- 它一次可以正常工作,但是当我再次重复时,它会从我的文件开头循环浏览我的 zsh 历史记录
.zsh_history
。
相反,我希望小部件从最近的历史回到开始。
- 同样,当它从我的 zsh 历史记录开始循环时,命令和要完成的参数之间的空格被删除。
IE:
键入一些带参数的命令:
echo 111 222 333
使用小部件来完成上一个命令的参数:
printf <WIDGET>
printf 111 222 333
以上按预期工作。但是当我再次按下 WIDGET 时,它突然变成了这样:
printf <WIDGET>
printf111 222 333
即命令和参数之间的空间被删除
- 最后,我想绑定另一个键,例如Alt+\来做相反的事情,这样当我按Alt+/一个太多次时,我可以退一步。
要插入除前一个历史条目的第一个单词之外的所有单词,您可以定义一个自定义小部件,例如: