Zsh 如何重复上一个命令的最后一部分?
我在Robby Russell的框架中使用zsh。如何创建快捷方式或其他方法来重复命令的最后一部分 例如,如果我键入:Zsh 如何重复上一个命令的最后一部分?,zsh,Zsh,我在Robby Russell的框架中使用zsh。如何创建快捷方式或其他方法来重复命令的最后一部分 例如,如果我键入: mv something in/this/difficult/to/type/directory 有什么方法可以轻易地得到这个:在/this/combard/to/type/directory中?$提供上一个命令的最后一个参数 例如: $ echo hello world hello world $ echo !$ echo world world % echo hello
mv something in/this/difficult/to/type/directory
有什么方法可以轻易地得到这个:在/this/combard/to/type/directory中?
$代码>提供上一个命令的最后一个参数
例如:
$ echo hello world
hello world
$ echo !$
echo world
world
% echo hello world
hello world
% echo !*
(expands to)-> % echo hello world
hello world
我刚刚进行了测试,看起来您可以用与bash相同的方法来完成:$
我也遇到了这个问题-我一直使用Alt.
在bash中插入最后一个单词。找到了oh my zsh覆盖的地方
在lib/key-bindings.zsh中,注释掉这个,它应该像在bash中一样工作:
bindkey-s'\e.'。\n“
添加bindkey“\e.”在.zshrc中插入最后一个单词
-sp3ctum,在注释中*代码>提供最后一个命令的所有参数
例如:
$ echo hello world
hello world
$ echo !$
echo world
world
% echo hello world
hello world
% echo !*
(expands to)-> % echo hello world
hello world
也可以与zsh
和噢,我的zsh
一起开箱即用 无论您是在bash还是在zsh中,都可以使用代码>运算符以恢复上一个命令的参数:
如果我们以:echoabcd
为例
$代码>-最后一个参数:d
!:*代码>-所有参数:a b c d(可以缩短!*
)
!:1
-第一个参数:a(与相同)!^
)
!:1-3
-从第一个到第三个参数:a b c
!:2-$
-从第二个参数到最后一个参数:b c d
最后一点回答您的问题,您可以执行命令的最后一部分
注意:!:0
是执行的最后一个命令,在我们的示例中,它将是echo仅扩展@Charles Gueunet answer
代码>-重复最后一个命令的全部内容
如果您忘记将sudo
添加到命令的开头,这将非常有用。简单的例子:
$ cat /some/root/owned/thing/with/a/long/path
Permission denied
$ sudo !!
here's the conent
如果您在这里寻找在zsh交互式shell上粘贴最后一个命令的最后一个单词,也许这就是您的答案
任何zsh中都已经配置了默认快捷方式(或者如果您安装了oh my zsh,我不太确定)。
若要检查是否安装了此快捷方式,请在“绑定键”中搜索“插入上一个工作”
使用此快捷键时,可以粘贴上一个命令中使用的最后一个单词。
例如:
很好,但我喜欢在bash中按下“ALT”键的方式。ALT句号?İ我想我以前听说过,但在我的机器上不起作用。@凯文:你的元键映射可能有点问题。ALT+f
做什么?关于ESC+。
?@Carlo Zsh在其默认设置中有相同的键绑定。@kentor我相信它是setopt nohistverify
或addbindkey'\e。insert last word
到您的.zshrc。@sp3ctum您的评论是最好的答案,我意识到它已经过时了,但@sp3ctum解决方案似乎是唯一适合我的解决方案。如果你添加它作为一个答案,我会接受它,这样你可以在运行它之前看到argunet!这里只是一个额外的注释,至少在键入后使用Oh my Zsh代码>参数您可以通过点击选项卡将其展开。在最后一行中,您的意思是!:0
?@babbata,抓得好!我已经把这个固定在身体里了。谢谢:)