2014-03-26 46 views
2

当输入一个很长的命令时,我想先在文本编辑器(例如vi)中编辑命令,然后在输入错误时执行。有没有办法直接在终端中编辑命令并运行而不是通过输入vi来调用vi然后输入命令?如何在Linux上使用vi编辑终端中的命令?

回答

7

如果您使用bash,请尝试edit-and-execute-command命令。默认情况下,这被分配到Ctrl-x Ctrl-e(键入ctrl-x,然后ctrl-e)。

这应该打开您的环境中指定的任何编辑器。不管退出时缓冲区中的内容都将在外壳中执行 - 包括多行命令。

2

您可以通过设置vi编辑模式。如果你使用bash,你可以输入:

set -o vi 

然后你就可以就像在vi命令的使用模式和插入模式。

0

如果您使用的是zsh,则shell命令被称为edit-command-line。它不是默认的约束,所以添加这样的事情到您的配置:

bindkey "^X^E" edit-command-line 

现在CTRL + XCTRL + E将努力以同样的方式在bash除了命令之前不执行返回被击中。