我使用zsh和Robby Russell的oh-my-zsh框架。如何创建快捷方式或重复命令的最后部分?
例如,如果我输入:
mv something in/this/difficult/to/type/directory
有没有办法轻松搞定:in / this / difficult / to / type / directory?
答案 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)
答案 5 :(得分:8)
我也碰到了这个 - 我总是在bash中使用Alt.
来插入last-word。发现oh-my-zsh覆盖了这个地方。
在lib / key-bindings.zsh中,注释掉它,它应该像在bash中一样工作:
bindkey -s '\e.' "..\n"
答案 6 :(得分:3)
<esc>.
也可与zsh
和oh-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
...