Odpowiednik / alternatywy dla Alt + Dot na Macu

36

Jedyną rzeczą, za którą tęsknię za powłoką Linuxa, jest skrót Alt + Dot . Robi to, wstawiając ostatni argument poprzedniego polecenia. Wydaje się to trywialna technika, ale jest naprawdę przydatna.

tzn. jeśli wpiszesz to:

$ ls /Applications/MAMP/conf/apache/

Następnym razem po prostu wpisz polecenie + skrót, a argument zostanie dla Ciebie uzupełniony.

$ cd 'alt+dot'

Na Macu znam 2 alternatywy; naciskając Esc + kropka lub pisania ! $ , ! * z magicznym konfiguracji przestrzeni .

Jednak podczas gdy obie alternatywy wstawiają ostatni użyty argument (y), nie mogą one przewijać w historii poleceń, podobnie jak wielokrotne wpisywanie Alt + Dot .

Mogę na razie żyć z tymi opcjami, ale chciałbym wiedzieć, czy ktoś zna lepszy sposób na zrobienie tego.

pablasso
źródło

Odpowiedzi:

21

Możesz nacisnąć klawisz Esc wiele razy, robi to samo, co Alt-Dot. Ale, podobnie jak ty, bardziej kłopotliwe jest pisanie niż alt-kropka.

simonp
źródło
3
Mogę naciskać go wiele razy, ale działa to po raz pierwszy
pablasso
2
Nieważne, masz rację. Musisz tylko zwolnić klawisz Esc, aby go ponownie nacisnąć, a następnie działa zgodnie z oczekiwaniami, przewijając historię. Jest to najczystsze rozwiązanie, ponieważ traktując klawisz opcji jako meta pomieszane z innymi skrótami.
pablasso
1
Najłatwiej to zrobić, zaznaczając „Użyj klawisza opcji jako meta” w preferencjach terminalu, jak opisano w odpowiedzi Richarda Hoskinsa.
Nocturne
32

W Terminal.app, Preferencje-> Ustawienia, wybierz zakładkę Klawiatura. Upewnij się, że opcja „Użyj klucza opcji jako meta” jest zaznaczona.

Richard Hoskins
źródło
3
btw, powinienem wspomnieć, że chociaż to rozwiązuje problem alt + kropka, to popsuwa inne kombinacje klawiszy, takie jak],} lub |. Moja klawiatura (hiszpański) używa opcji + somekey do ich wpisywania. Nie możesz mieć tego wszystkiego.
pablasso
7
W iTerm otwórz Preferencje, Profile> Klucze, wybierz klawisz opcji działa jak +Escna dole.
Ivan Chau,
5

Użyj option+.

Zauważ, że jest to cecha bash, a nie linux. Komputery Mac też mają bash. Alt-. jest skrótem do wbudowanej funkcji bash insert-last-argument. Przeczytaj sekcję READLINE strony podręcznika bash, aby dowiedzieć się, jak powiązać to z inną kombinacją klawiszy.


Wklejanie kilku istotnych części:

   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
źródło
1
Dzięki, wiem, że to funkcja bash, ale skrót nie jest domyślnie włączony, przynajmniej nie w Terminal.app, ponieważ domyślnie nie ma meta-klucza. Zobacz odpowiedź Richarda.
pablasso
2

Jeśli otworzysz Terminal.app i wprowadzisz preferencje, idziesz do Ustawienia> Klawiatura i zaznaczysz „Użyj opcji jako klawisza meta”, możesz użyć skrótów bazowych, które używają alt, na przykład:

Alt+ B: Pomiń słowo do tyłu

Alt+ F: Przeskocz słowo do przodu

Źródło

Alain
źródło
1
Witamy w Super User! Chociaż teoretycznie może to odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać odnośnik. Na razie zredagowałem dla ciebie odpowiedź.
Der Hochstapler