Si estoy usando terminal y estoy escribiendo una línea de texto para un comando, ¿hay alguna tecla de acceso rápido o alguna forma de borrar / eliminar esa línea?
Por ejemplo, si mi línea / comando actual es algo realmente largo como:
> git log --graph --all --blah..uh oh i want to cancel and clear this line <cursor is here now>
¿Hay una tecla de acceso rápido o comando para pasar de lo anterior a:
>
?
Por lo general, presionaré la ↓tecla, y si mi línea actual es nueva en el historial, eso la borrará. Pero si estoy revisando mi historial de comandos a través de la ↑tecla y empiezo a editar o usar esos comandos, ↓solo cambiaré la solicitud al siguiente comando más nuevo en el historial, por lo que no funciona aquí a menos que presione ↓varias veces.
Respuestas:
Puedes usar Ctrl+ Upara despejar hasta el principio.
Puede usar Ctrl+ Wpara eliminar solo una palabra.
También puede usar Ctrl+ Cpara cancelar.
Si desea mantener el historial, puede usar Alt+ Shift+ #para hacer un comentario.
Hoja de trucos del modo de edición Bash Emacs
fuente
<kbd>...</kbd>
etiqueta para mostrar claves en SO.ESC
es su propia tecla modificadora en bash. Se usa para cosas como cancelar la navegación del historial (CTRL
+r
) o intercambiar las últimas dos palabras detrás del cursor (ESC
+t
).Solo para resumir todas las respuestas:
fuente
Alt + D
Alt
+D
no funciona por eso no lo he incluido :(CTRL + L
borra la pantalla pero mantiene lo que se ha escrito en la línea de comando actual.Ctrl + Alt + >
se mueve al final del historial de entrada, lo cual es perfecto cuando desea cancelar la búsqueda en el historial.Tengo la lista completa de accesos directos:
fuente
CTRL
+L
(16.) conserva el contenido de la línea de comando actual.Ctrl
+h
: borra el carácter antes del cursorCtrl+ A, Ctrl+ Kpara borrar la línea actual en la terminal. Luego puede recuperarlo con Ctrl+ Ysi lo necesita.
fuente
o si estás usando el modo vi, presiona Escseguido decc
para recuperar lo que acaba de borrar, Escy luego p:)
fuente
echo 'set editing-mode vi' >> ~/.inputrc
. También funciona en lugares como mensajes de intérprete de Python y algunos clientes SQLNo estoy seguro de si te encanta, pero utilizo Ctrl+ A(para comenzar la línea) y Ctrl+ K(para eliminar la línea) Estaba familiarizado con estos comandos de emacs, y los descubrí accidentalmente.
fuente
Una alternativa a Ctrl+ A, Ctrl+ Kes Ctrl+ E, Ctrl+ U.
fuente
Ctrl+ w: mueve los caracteres y (múltiples) palabras que quedan del cursor a un búfer en anillo
Ctrl+ y: inserta la última entrada de tu buffer de anillo y luego puedes usar Alt+ ypara rotar a través de tu buffer de anillo. Presione varias veces para continuar con la entrada "anterior" en el búfer en anillo.
fuente
CTRL+ Ry comience a escribir para buscar comandos anteriores en el historial. Mostrará líneas completas.
CTRL+ de Rnuevo al ciclo.
fuente
Ctrl + W borrará la palabra a la izquierda.
fuente
Añadir a la lista:
En el modo Emacs, presionar Esc, seguido de R, eliminará toda la línea.
No sé por qué, simplemente lo encuentro. Tal vez no se usa para eliminar la línea, pero tiene el mismo efecto. Si alguien sabe, por favor dime, gracias :)
Funciona en Bash, pero no funcionará en Fish.
fuente
revert-line
comando readline: "Deshacer todos los cambios realizados en esta línea". Está vinculado, por defecto, aM-r
(Meta-R), que puede ser Alt-R o Esc R. Esto significa que en realidad no está eliminando la línea, solo cuando estaba vacía para empezar; si se desplaza hacia atrás en su historial de comandos y cambia un comando, luego emitarevert-line
, volverá a cambiar al comando que era originalmente y no eliminará la línea.Para eliminar la línea completa sin importar dónde esté el cursor, puede usar el
kill-whole-line
comando, pero no está vinculado de forma predeterminada. Se puede vincular a, por ejemplo, Ctrl+ Alt+ Kinsertandoen su archivo de inicio de Readline (convencionalmente
~/.inputrc
).Varios comentarios:
Para evitar reasignar accidentalmente una secuencia de teclas que ya está en uso para otra cosa, puede verificar todos sus enlaces con
bind -P
. Verifique el enlace sugerido conINPUTRC
. Si no está configurado, el valor predeterminado es~/.inputrc
, o (si eso no existe)/etc/inputrc
. Tenga en cuenta que si tiene~/.inputrc
,/etc/inputrc
será ignorado.bind
incorporadofuente
Para limpiar toda la línea (2 formas diferentes):
fuente
Alt+ #comenta la línea actual. Estará disponible en la historia si es necesario.
fuente