¿Cómo edito el comando de shell actual en VI?

31

He visto en blogs en máquinas Linux que puede editar el comando bash shell actual en VI (o lo que sea que esté configurado el EDITOR) presionando ctrl-x, ctrl-e.

Esto no parece funcionar en 10.8. ¿Alguna idea sobre cómo editar el comando bash actual en el editor predeterminado?

Scott Walter
fuente
Esto debería funcionar en 10.8 (al menos lo hace para mí). ¿Intentaste desarmar FCEDIT y EDITOR?
nohillside
La documentación para C-xC-e está aquí : ¿qué hay en su VISUALvariable?
Glenn Jackman
No se trata de 10.8. Estoy en 10.8 y funciona bien conmigo. No cambié nada en mi .bash_profile para habilitar esto.
Vincent
1
Nota: Esta pregunta de Apple.SE es básicamente la misma que la pregunta del Súper Usuario "Estoy usando Bash en 'modo vi'. ¿Cuál es la secuencia de teclas de acceso rápido para editar la línea de comando actual usando un editor externo?"
inolvidableid
1
Me acabo de dar cuenta de que estaba haciendo Ctrl + (x, e) (manteniendo presionada la tecla Ctrl, presionando x, presionando e, soltando el control). Por eso no funcionó para mí. Cuando cambié a presionar dos trazos claros Ctrl-x, suelte Ctrl, Ctrl-e, ¡entonces todo comenzó a funcionar perfectamente!
Dimitry K

Respuestas:

32

Lo quieres set -o vi(agrégalo a tu ~/.bashrc). Luego, para editar la línea actual, simplemente presione Escpara ingresar al modo de comando.

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

Para editar el comando actual en un editor de pantalla completa, configure su VISUALvariable de entorno en vim(supongo que lo desea vim), luego, en el modo de comando en el comentario actual, presione v.

Glenn Jackman
fuente
55
presionar la "v" era la salsa secreta que me faltaba. Gracias.
Scott Walter
2
¿Es posible obtener este vcomando mientras está en modo emacs (no vi)?
Alex Kahn
10
Simplemente haz Ctrl-X y luego Ctrl-E.
albapa
7

Es edit-and-execute-commandposible que no esté obligado por el vimodo. Tratar:

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

Para hacerlo permanente, agregue esa línea a su ~/.inputrcarchivo.

(a través de esta respuesta ; crédito a @unforgettableid por el enlace)

Estofado
fuente