请注意,我所说的不是历史记录中的先前行。我说的是当前多行命令中的先前行。
例如,在zsh中输入多行命令时(
此时我可能会改变主意,想让
实际上,这不仅限于zsh。例如,在bash中,我也从未解决过这个问题。
我已经花了相当多的时间在Google上搜索,但没有发现任何结果,所以如果这很明显,请原谅我并归咎于我的Google技巧不佳。
供参考,我使用的是Emacs键绑定和:
例如,在zsh中输入多行命令时(
_
表示光标):$ for i in {1..5}; do
for> echo i_
此时我可能会改变主意,想让
i
循环遍历{1..10}
,因此需要回到上一行。但是,我无法弄清如何做到这一点,因为⌫、←、C-b
或者我能想到的任何操作都会停在第二行的开头。那么,有没有可能返回上一行呢?提前感谢。实际上,这不仅限于zsh。例如,在bash中,我也从未解决过这个问题。
我已经花了相当多的时间在Google上搜索,但没有发现任何结果,所以如果这很明显,请原谅我并归咎于我的Google技巧不佳。
供参考,我使用的是Emacs键绑定和:
$ bindkey | grep delete
"^D" delete-char-or-list
"^H" backward-delete-char
"^[[3~" delete-char
"^?" backward-delete-char
不确定这是否有帮助。
bash
中不可能实现,但对于zsh
我不确定。问题是,一旦您在输入第一行后按下Enter
,bash
将记住该行,但不再接受该行的输入。 - merlin2011bash
中,如果您处于vi
模式下,可以键入v
打开编辑器,其路径存储在$VISUAL
中。我不确定emacs键绑定的等效方式。 - merlin2011vi
不是很熟悉,你能解释一下“输入v
打开编辑器...”吗?我的意思是,我需要输入什么才能打开编辑器(肯定不只是一个v
,对吧)? - 4ae1e1