22

I have seen in blogs on Linux machines you can edit the current bash shell command in VI (or whatever the EDITOR is set to) by pressing ctrl-x,ctrl-e.

This doesn't seem to work on 10.8. Any ideas on how to edit the current bash command in the default editor?

  • This should work in 10.8 (at least it does for me). Did you try to unset FCEDIT and EDITOR? – nohillside Apr 11 '13 at 18:23
  • The documentation for C-xC-e is here -- what's in your VISUAL variable? – glenn jackman Apr 11 '13 at 21:29
  • it is not about 10.8. I am on 10.8 and it works fine with me. I did not change anything in my .bash_profile to enable this. – Vincent Apr 12 '13 at 2:37
  • 1
    Note: This Apple.SE question is basically the same as the Super User question "I'm using Bash in 'vi mode'. What's the hotkey sequence to edit the current command line using an external editor?" – unforgettableid Jan 8 '15 at 21:07
  • I just realized that I was doing Ctrl+(x,e) (holding ctrl, pressing x, pressing e, releasing control) - this is why it didn't work for me. When I changed to pressing two clear strokes Ctrl-x, release Ctrl, Ctrl-e - then everything started to work perfectly! – Dimitry K Aug 21 '18 at 11:34
25

You want set -o vi (add it to your ~/.bashrc). Then, to edit the current line, just hit Esc to enter command mode.

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

To edit the current command in a full-screen editor, set your VISUAL environment variable to vim (I assume you want vim), then in command mode in the current comment, hit v.

  • 4
    pressing the "v" was the secret sauce I was missing. thanks. – Scott Walter Apr 27 '13 at 0:32
  • 2
    Is it possible to get this v command while in emacs (non-vi) mode? – Alex Kahn Oct 28 '15 at 14:15
  • 7
    Just do Ctrl-X then Ctrl-E. – albapa Jun 7 '16 at 10:18
4

Your edit-and-execute-command may not be bound for vi mode. Try:

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

To make it permanent, add that line to your ~/.inputrc file.

(via this answer; credit to @unforgettableid for the link)

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.