¿Qué es "<Esc> Kv" en bash

13

Cuando estoy en bash y de prensa Esc, Shift+ K, V, golpe del incendios hasta $EDITORcon un nombre de fichero similar a /tmp/bash-fc-186566385.

¿Por qué es eso y cuál es su propósito?

Probablemente necesito mencionar que estoy ejecutando bash con set -o vi.

René Nyffenegger
fuente

Respuestas:

10

Esto le permite construir un comando con la edición completa de Vi. Si escribe algunos comandos y guarda la salida :wq, se ejecutarán los comandos.

CLARIFICACIÓN: le permite construir el comando en cualquier editor que haya configurado $EDITORy cuando guarde y salga de él, se ejecutará el contenido. (¡Aclaró que no se trata solo de Vi!)

TAMBIÉN, como lo señaló RealSkeptic , la combinación shift+ Kno es necesaria para que aparezca el editor. Simplemente esc, Vlo hará.

forquare
fuente
Tenga en cuenta que pocos teclados tienen una tecla etiquetada v. Al presionar la tecla (o teclas mejores) para obtener, Knormalmente se marca como <kbd>Shift</kbd>+<kbd>K</kbd>y al presionar la tecla para obtener (minúsculas) vcomo<kbd>V</kbd>
Anthon
No, pero su edición en la publicación de OP tuvo errores.
Anthon
2
¿No se puede acceder al modo editor simplemente con escape-V? El "shift-K" parece ser simplemente vudú.
RealSkeptic
@RealSkeptic tiene razón, buena información complementaria
forquare
3
También Ctrl-x + e (si no está en modo vi)
Iacchus
12

No necesitas Shift+ k. El uso de Esc+ vfuncionará ya que permite la edición de la línea de comandos del shell utilizando el editor vi incorporado utilizando set -o vi(lo mismo se puede lograr con Ctrl+ x+ e). Esto es equivalente a ejecutar el fccomando incorporado que es útil para manipular la lista de historial y el archivo de historial. Invocará cualquier editor que esté configurado en su $EDITOR(de lo contrario, el editor predeterminado de su shell) para escribir un comando largo, complejo o complejo y luego ejecutarlo después de guardar y cerrar el editor. Consulte aquí los detalles sobre el fccomando: Bash history builtins .

taza de cafe
fuente