Equivalentes / Alternativas para Alt + Dot en Mac

36

Una cosa que extraño del shell de Linux es el acceso directo Alt + Dot . Lo que hace es insertar el último argumento del comando anterior. Parece ser una técnica trivial, pero es realmente útil.

es decir, si escribe esto:

$ ls /Applications/MAMP/conf/apache/

La próxima vez solo tiene que escribir un comando + acceso directo y el argumento se completará por usted.

$ cd 'alt+dot'

En Mac conozco 2 alternativas; presionando Esc + Punto o escribiendo ! $ , ! * con la configuración espacio mágico .

Sin embargo, si bien ambas alternativas insertan los últimos argumentos que ha utilizado, no pueden desplazarse hacia atrás en el historial de comandos como escribir Alt + Dot repetidamente.

Puedo vivir con estas opciones por ahora, pero me encantaría saber si alguien conoce una mejor manera de hacerlo.

pablasso
fuente

Respuestas:

21

Puede presionar Esc-dot muchas veces, hace lo mismo que alt-dot. Pero, como usted, me resulta más engorroso escribir para escribir que alt-dot.

simonp
fuente
3
Puedo presionar muchas veces, pero solo funciona la primera vez
pablasso
2
No importa, tienes razón. Solo tiene que soltar esc para presionarlo nuevamente, luego funciona como se esperaba desplazándose por el historial. Siendo que tratar la tecla de opción como meta desordena algunos otros atajos, esta es la solución más limpia.
pablasso
1
La forma más fácil de hacer esto es marcar "Usar clave de opción como meta" en las preferencias de Terminal, como se describe en la respuesta de Richard Hoskins.
Nocturno
32

En Terminal.app, Preferencias-> Configuración, seleccione la pestaña Teclado. Asegúrese de que "Usar la tecla de opción como meta" esté marcado.

Richard Hoskins
fuente
3
por cierto, debo mencionar que si bien esto resuelve el problema de alt + punto, desordena otras combinaciones de teclado como],} o |. Mi teclado (español) usa la opción + alguna tecla para escribirlos. Bueno, no puedes tenerlo todo.
pablasso
77
Para iTerm, abra Preferencias, Perfiles> Teclas, la tecla Seleccionar opción actúa como +Escen la parte inferior.
Ivan Chau
5

Use option+.

Tenga en cuenta que esta es una característica de bash y no de linux. Las Macs también han atacado. Alt-. es el acceso directo para una función bash incorporada insert-last-argument. Lea la sección READLINE de la página de manual de bash para saber cómo puede vincular esto a una combinación de teclas diferente.


Pegar algunas partes relevantes:

   Readline Initialization
       Readline  is customized by putting commands in an initialization file (the
       inputrc file).
       The  default key-bindings may be changed with an inputrc file.  Other pro-
       grams that use this library may add their own commands and bindings.

       For example, placing

              M-Control-u: universal-argument
       or
              C-Meta-u: universal-argument
       into the inputrc would make M-C-u execute  the  readline  command  univer-
       sal-argument.

   Readline Key Bindings
       The  syntax  for  controlling  key bindings in the inputrc file is simple.
       All that is required is the name of the command or the text of a macro and
       a  key  sequence to which it should be bound. The name may be specified in
       one of two ways: as a symbolic key name, possibly with Meta-  or  Control-
       prefixes, or as a key sequence.

       When using the form keyname:function-name or macro, keyname is the name of
       a key spelled out in English.  For example:

              Control-u: universal-argument
              Meta-Rubout: backward-kill-word
              Control-o: "> output"

       In the above example, C-u is bound  to  the  function  universal-argument,
       M-DEL is bound to the function backward-kill-word, and C-o is bound to run
       the macro expressed on the right hand side (that is, to  insert  the  text
       ``> output'' into the line).

       In  the  second form, "keyseq":function-name or macro, keyseq differs from
       keyname above in that strings denoting an entire key sequence may be spec-
       ified  by placing the sequence within double quotes.  Some GNU Emacs style
       key escapes can be used, as in the following  example,  but  the  symbolic
       character names are not recognized.

              "\C-u": universal-argument
              "\C-x\C-r": re-read-init-file
              "\e[11~": "Function Key 1"


   Commands for Manipulating the History
       insert-last-argument (M-., M-_)
              A synonym for yank-last-arg.
Doug Harris
fuente
1
Gracias, sé que es una función bash, pero el acceso directo no está habilitado de forma predeterminada, al menos no en Terminal.app, ya que no hay una meta clave por defecto. Ver la respuesta de Richard.
pablasso
2

Si abres Terminal.app e ingresas preferencias, y vas a Configuración> Teclado y marcas "Usar opción como meta tecla", puedes usar los atajos de bash que usan alt, por ejemplo:

Alt+ B: Saltar palabra hacia atrás

Alt+ F: Saltar palabra hacia adelante

Fuente

Alain
fuente
1
¡Bienvenido a Super User! Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia. Por ahora, edité la respuesta para ti.
Der Hochstapler