如何让方向键显示多行命令?

如何让方向键显示多行命令?

我刚刚在终端中执行了以下命令:

$ while read i
> do
> echo $i
> done
4
4

但是当我尝试使用向上箭头历史功能重新运行命令时,我只得到部分命令,如下所示:

$ while read i

如何在 KSH 中使用向上箭头打印整个 while 循环?

答案1

原始 ksh 中的行编辑非常有限。您可能想使用它的“克隆”之一,例如 zsh 或 bash。

对于 ksh93,我发现如果您使用vi编辑模式 ( ksh -o vi) 而不是emacsorgmacs模式,则调用多行命令不会工作,尽管换行符呈现为^J.这也是您pdksh在所有编辑模式中所获得的及其衍生版本。

请注意,您还可以输入这些换行符,以便Ctrl+VCtrl+J在一行上输入多行代码,然后即使在emacs模式下也可以稍后调用它。

另一种选择是fc在真实的文本编辑器中编辑上一行:

fc while

$FCEDITex包含while.然后在编辑器中保存并退出后运行它。


¹zsh还有一个ksh模拟模式,使其表现得更接近,以防您确实依赖ksh某些ksh行为(使用emulate ksh或 调用zshas时输入ksh

相关内容