¿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?


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
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.


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)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.