Forever Learner Asked: 2018-03-28 21:34:56 +0800 CST2018-03-28 21:34:56 +0800 CST 2018-03-28 21:34:56 +0800 CST 如何使箭头键显示多行命令? 772 我刚刚在终端中执行了以下命令: $ while read i > do > echo $i > done 4 4 但是当我尝试使用向上箭头历史功能重新运行命令时,我只得到如下部分命令: $ while read i 如何在 KSH 中使用向上箭头打印整个 while 循环? linux ksh 1 个回答 Voted Best Answer Stéphane Chazelas 2018-03-28T22:39:17+08:002018-03-28T22:39:17+08:00 原始 ksh 中的行编辑非常有限。您可能想要使用它的“克隆”之一,例如 zsh¹ 或 bash。 对于 ksh93,我发现如果您使用vi编辑模式 ( ksh -o vi) 而不是emacsor模式gmacs,那么调用多行命令确实有效,尽管换行符呈现为^J. 这也是您pdksh在所有编辑模式中所获得的及其衍生产品。 请注意,您还可以输入那些换行符,以便在一行中输入该多行代码,然后即使在模式下Ctrl+VCtrl+J也可以稍后调用它。emacs 另一种选择是用于fc在真实文本编辑器中编辑上一行: fc while 将在$FCEDIT包含. 然后在编辑器中保存并退出后运行它。exwhile ¹zsh也有一个ksh仿真模式,使其表现得更接近于你确实依赖ksh的某些行为(使用as输入或调用时)kshemulate kshzshksh
原始 ksh 中的行编辑非常有限。您可能想要使用它的“克隆”之一,例如 zsh¹ 或 bash。
对于 ksh93,我发现如果您使用
vi
编辑模式 (ksh -o vi
) 而不是emacs
or模式gmacs
,那么调用多行命令确实有效,尽管换行符呈现为^J
. 这也是您pdksh
在所有编辑模式中所获得的及其衍生产品。请注意,您还可以输入那些换行符,以便在一行中输入该多行代码,然后即使在模式下Ctrl+VCtrl+J也可以稍后调用它。
emacs
另一种选择是用于
fc
在真实文本编辑器中编辑上一行:将在
$FCEDIT
包含. 然后在编辑器中保存并退出后运行它。ex
while
¹
zsh
也有一个ksh
仿真模式,使其表现得更接近于你确实依赖ksh
的某些行为(使用as输入或调用时)ksh
emulate ksh
zsh
ksh