如何在VI中编辑当前的Shell命令


31

我曾在Linux机器上的博客中看到,您可以通过按ctrl-x,ctrl-e在VI(或任何将EDITOR设置为)中编辑当前的bash shell命令。

这似乎不适用于10.8。关于如何在默认编辑器中编辑当前bash命令的任何想法?


应该在10.8中有效(至少对我有用)。您是否尝试取消设置FCEDIT和EDITOR?
nohillside

C-xC-e的文档在这里 - VISUAL变量中包含什么?
glenn jackman

它不是大约10.8。我现在是10.8,可以正常使用。我没有更改我的.bash_profile中的任何内容来启用此功能。
文森特

1
注意:这个Apple.SE问题与超级用户问题“我在'vi模式下使用Bash'
unforgettableid

1
我只是意识到我在做Ctrl +(x,e)(按住ctrl,按x,按e,释放控件)-这就是为什么它对我不起作用的原因。当我改变为按下两个清晰的笔触Ctrl-x时,松开Ctrl,Ctrl-e,然后一切都开始正常工作!
Dimitry K,

Answers:


32

您想要set -o vi(将其添加到中~/.bashrc)。然后,要编辑当前行,只需单击Esc即可进入命令模式。

参见http://www.gnu.org/software/bash/manual/bashref.html#Readline-vi-Mode

要在全屏编辑器中编辑当前命令,请将VISUAL环境变量设置为vim(我假设您要vim),然后在命令模式下的当前注释中,单击v


5
按下“ v”键是我所缺少的秘密。谢谢。
Scott Walter

2
v在emacs(非vi)模式下是否可以获取此命令?
亚历克斯·卡恩

10
只需按Ctrl-X,然后按Ctrl-E。
albapa

7

edit-and-execute-command可能不受vi模式的约束。尝试:

bind -m vi-insert '"\C-x\C-e": edit-and-execute-command'

要使其永久,请将该行添加到~/.inputrc文件中。

(通过此答案;将链接记入@unforgettableid)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.