Rehacer escribiendo en OSX bash

9

En bash on OSX puedo hacer ctrl-_para deshacer lo que escribí más recientemente. ¿Hay un comando de rehacer correspondiente?

amindfv
fuente
2
He echado un vistazo rápido en la página de manual de readline (3) y no puedo encontrar nada sobre el comando rehacer / atajo. readline (3) es la biblioteca responsable de los accesos directos y la función histórica en bash. Si está interesado, puede consultar el manual aquí unixhelp.ed.ac.uk/CGI/man-cgi?readline+3 . Hay todos los accesos directos predeterminados enumerados en esta página de manual.
Bruno Coimbra
@BrunoCoimbra: parece que puede que no haya nada, pero gracias por la referencia.
amindfv

Respuestas:

4

ctrl-yes el comando Readline 'yank' que recupera el buffer de eliminación. ctrl-umata desde el punto hasta el comienzo de la línea (similar a OSX / bash ctrl-_que borra toda la línea). Los enlaces Readline tipo Emacs están habilitados en bash y un subconjunto está habilitado en muchos otros lugares (barras de búsqueda del navegador, etc.).

  • ctrl-u matar desde el inicio de la línea hasta el punto de inserción
  • ctrl-k matar desde el punto de inserción hasta el final de la línea
  • ctrl-w matar la palabra anterior (y anteponer para matar el búfer)
  • ctrl-y extraer el contenido del búfer de eliminación
idoimaging
fuente
1
Obtengo un comportamiento diferente (en Terminal en OS X y XTerm y Emacs en Fedora): ctrl-_deshace la última acción, y también ctrl-yrecupera cualquier texto eliminado, no solo con ctrl-u. Aún así, no había oído hablar ctrl-yantes, ¡gracias!
amindfv
Edité mi respuesta para decir 'Readline' en lugar de 'Emacs', aunque se comparten muchas asociaciones de teclas, también para ampliar la definición del buffer de eliminación. El comando Readline kill-whole-line, que hace lo mismo que tu ctrl-_, no está vinculado de forma predeterminada; siempre me pregunté si hay un comando kill-whole-line. Yo uso ctrl-a-k( inicio de línea kill-line ) para matar toda la línea.
idoimaging
77
Para mí, sin ctrl-_embargo , no mata toda la línea: es un comando de deshacer
Amindfv
44
Y tampoco responde la pregunta.
suzanshakya