如何重复上一个命令的最后一部分?

时间:2011-12-01 16:24:55

标签: zsh

我使用zsh和Robby Russell的oh-my-zsh框架。如何创建快捷方式或重复命令的最后部分?

例如,如果我输入:

mv something in/this/difficult/to/type/directory

有没有办法轻松搞定:in / this / difficult / to / type / directory?

9 个答案:

答案 0 :(得分:43)

我刚刚测试过,看起来你可以像在bash中一样进行:!$

答案 1 :(得分:17)

!*为您提供 ALL 最后一个命令的参数。

示例:

% echo hello world  
hello world

% echo !*  
(expands to)-> % echo hello world
hello world

答案 2 :(得分:13)

!$为您提供上一个命令的最后一个参数。

示例:

$ echo hello world
hello world
$ echo !$
echo world
world

答案 3 :(得分:13)

如果你在 bash zsh ,你可以使用!运算符来恢复上一个命令的参数:

如果我们将:echo a b c d作为示例

  • !$ - 最后一个参数: d
  • !:* - 所有参数: a b c d (可以缩短!*
  • !:1 - 第一个参数: a (与!^相同)
  • !:1-3 - 从第一到第三的参数: a b c
  • !:2-$ - 从第二个到最后一个的参数: b c d

最后一点回答你的问题,你可以采取你命令的最后一部分。

注意:$:0是最后执行的命令,在我们的示例中它将是 echo

答案 4 :(得分:12)

  

添加bindkey' \ e。'将。-last-word插入.zshrc

- sp3ctum,在评论here

答案 5 :(得分:8)

我也碰到了这个 - 我总是在bash中使用Alt.来插入last-word。发现oh-my-zsh覆盖了这个地方。

在lib / key-bindings.zsh中,注释掉它,它应该像在bash中一样工作:

bindkey -s '\e.' "..\n"

答案 6 :(得分:3)

<esc>.也可与zshoh-my-zsh一起使用。

答案 7 :(得分:0)

只需扩展@Charles Gueunet答案;

  • !!-重复整个上一条命令

如果您忘记在命令的开头添加sudo,这将很有用。简单的例子:

$ cat /some/root/owned/thing/with/a/long/path
Permission denied
$ sudo !!
here's the conent

答案 8 :(得分:0)

如果您在这里找到 zsh 交互式外壳上的从最后一个命令粘贴最后一个单词,也许这就是您的答案。

在任何zsh中已经配置了默认的快捷方式(或者,如果您已经安装了oh-my-zsh,我不确定)。
要检查是否已安装此快捷方式,请在绑定键中搜索 insert-last-work

[...]
rtl = render(...);
[...]

// grab the input
const creationDateFromInput = rtl.getByTestId('creationDate').querySelectorAll('input')[0];
// mouseDown opens the calendar popup, set focus on the input
fireEvent.mouseDown(creationDateFromInput);
// type date in input
fireEvent.change(creationDateFromInput, { target: { value: '2020-01-15' } });
// now calendar popup is opened and 2020-01-15 cell is selected, just click on it
fireEvent.click(document.querySelector('.ant-picker-cell-selected'));

// now form field is correclty set

使用此键盘快捷键时,可以粘贴上一个命令中使用的最后一个单词。
示例:

$ bindkey -L | grep insert

...
bindkey "^[." insert-last-word
bindkey "^[_" insert-last-word
...