Equivalentes / alternativas para Alt + Dot no Mac

36

Uma coisa que sinto falta do shell do Linux é o atalho Alt + Dot . O que ele faz é inserir o último argumento do comando anterior. Parece ser uma técnica trivial, mas é realmente útil.

ou seja, se você digitar isso:

$ ls /Applications/MAMP/conf/apache/

Na próxima vez que você apenas digitar um comando + atalho, o argumento será concluído.

$ cd 'alt+dot'

No Mac, conheço 2 alternativas; pressionar Esc + Dot ou digitação ! $ , * com a configuração do espaço mágico .

No entanto, embora as duas alternativas insiram os últimos argumentos usados, eles não podem voltar no histórico de comandos, como digitar Alt + Dot repetidamente.

Por enquanto, posso viver com essas opções, mas eu adoraria saber se alguém sabe a melhor maneira de fazer isso.

pablasso
fonte

Respostas:

21

Você pode pressionar Esc-ponto várias vezes, o mesmo ocorre com alt-ponto. Mas, como você, acho mais complicado digitar do que alt-dot.

simonp
fonte
3
I pode pressioná-lo muitas vezes, mas ele só funciona na primeira vez
pablasso
2
Deixa pra lá, você está certo. Você só precisa soltar esc para pressioná-lo novamente. Depois, ele funciona como esperado, percorrendo o histórico. Sendo que tratar a tecla de opção como meta atrapalha alguns outros atalhos, esta é a solução mais limpa.
pablasso 18/12/09
1
A maneira mais fácil de fazer isso é verificar "Usar chave de opção como meta" nas preferências do Terminal, conforme descrito na resposta de Richard Hoskins.
Noturno
32

No Terminal.app, Preferências-> Configurações, selecione a guia Teclado. Verifique se "Usar chave de opção como meta" está marcada.

Richard Hoskins
fonte
3
btw, devo mencionar que, embora isso resolva o problema de alt + dot, ele atrapalha outras combinações de teclado como],} ou |. Meu teclado (espanhol) usa a opção + alguma tecla para digitá-los. Bem, você não pode ter tudo.
pablasso 18/12/09
7
Para o iTerm, abra Preferências, Perfis> Chaves, Escolha a tecla de opção, que atua +Escna parte inferior.
Ivan Chau
5

Use option+.

Note que este é um recurso do bash e não do linux. Macs se divertem com eles também. Alt-. é o atalho para uma função bash interna insert-last-argument. Leia a seção READLINE da página de manual do bash para saber como vincular isso a uma combinação de teclas diferente.


Colando algumas 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
fonte
1
Obrigado, eu sei que é um recurso bash, mas o atalho não está ativado por padrão, pelo menos não no Terminal.app, pois não há meta-chave por padrão. Veja a resposta de Richard.
Pablasso
2

Se você abrir o Terminal.app e digitar preferências, vá em Configurações> Teclado e marque a opção "Usar opção como meta-chave", poderá usar os atalhos do bash que usam alt, por exemplo:

Alt+ B: Pula a palavra para trás

Alt+ F: Ignora a palavra para a frente

Fonte

Alain
fonte
1
Bem-vindo ao Super Usuário! Embora isso possa teoricamente responder à pergunta, seria preferível incluir aqui as partes essenciais da resposta e fornecer o link para referência. Por enquanto, editei a resposta para você.
Der Hochstapler 15/08/12