Entsprechung / Alternativen für Alt + Punkt in Mac

36

Eine Sache, die ich von der Linux-Shell vermisse, ist die Tastenkombination Alt + Punkt . Was es tut, ist das letzte Argument des vorherigen Befehls einzufügen. Es scheint eine triviale Technik zu sein, aber sie ist wirklich nützlich.

dh wenn Sie dies eingeben:

$ ls /Applications/MAMP/conf/apache/

Wenn Sie das nächste Mal nur einen Befehl + eine Verknüpfung eingeben, wird das Argument für Sie vervollständigt.

$ cd 'alt+dot'

Auf dem Mac kenne ich 2 Alternativen; Drücken Sie Esc + Dot oder Eingabe ! $ , ! * mit dem magischen Raum - Setup .

Beide Alternativen fügen zwar die zuletzt verwendeten Argumente ein, können jedoch nicht im Befehlsverlauf zurückgeblättert werden, wie dies bei wiederholter Eingabe von Alt + Punkt der Fall ist.

Ich kann vorerst mit diesen Optionen leben, aber ich würde gerne wissen, ob jemand einen besseren Weg kennt, dies zu tun.

pablasso
quelle

Antworten:

21

Sie können mehrmals die Esc-Taste drücken. Das Gleiche gilt für Alt-Punkte. Aber, wie Sie, finde ich es umständlicher zu tippen als Alt-Punkt.

simonp
quelle
3
Ich kann es oft drücken, aber es funktioniert nur beim ersten Mal
Pablasso
2
Vergiss nicht, du hast recht. Sie müssen esc nur loslassen, um es erneut zu drücken. Dann funktioniert es wie erwartet, wenn Sie durch den Verlauf scrollen. Da das Behandeln der Optionstaste als Meta einige andere Verknüpfungen durcheinander bringt, ist dies die sauberste Lösung.
Pablasso
1
Am einfachsten ist es, in den Terminaleinstellungen die Option "Optionsschlüssel als Meta verwenden" zu aktivieren, wie in der Antwort von Richard Hoskins beschrieben.
Nocturne
32

Wählen Sie in Terminal.app unter Einstellungen-> Einstellungen die Registerkarte Tastatur. Stellen Sie sicher, dass "Optionsschlüssel als Meta verwenden" aktiviert ist.

Richard Hoskins
quelle
3
Übrigens sollte ich erwähnen, dass dies zwar das Alt + Punkt-Problem löst, aber andere Tastaturkombinationen wie],} oder | durcheinander bringt. Meine Tastatur (Spanisch) verwendet Option + Somekey, um sie einzugeben. Du kannst nicht alles haben.
pablasso
7
Öffnen Sie in iTerm "Einstellungen", "Profile"> "Schlüssel". Die Optionstaste "Auswählen" verhält sich wie +Escunten.
Ivan Chau
5

Verwenden Sie option+.

Beachten Sie, dass dies eine Funktion von bash und nicht von linux ist. Macs haben auch Bash auf sie. Alt-. ist die Abkürzung für eine builtin bash Funktion insert-last-argument. Lesen Sie den Abschnitt READLINE auf der bash-Manpage, um zu erfahren, wie Sie dies an eine andere Tastenkombination binden können.


Einfügen einiger relevanter Teile:

   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
quelle
1
Danke, ich weiß, dass es sich um eine Bash-Funktion handelt, aber die Verknüpfung ist standardmäßig nicht aktiviert, zumindest nicht in Terminal.app, da standardmäßig kein Metaschlüssel vorhanden ist. Siehe Richards Antwort.
Pablasso
2

Wenn Sie Terminal.app öffnen und Einstellungen eingeben, Einstellungen> Tastatur auswählen und die Option "Option als Metataste verwenden" aktivieren, können Sie die Bash-Verknüpfungen verwenden, die alt verwenden, zum Beispiel:

Alt+ B: Wort rückwärts überspringen

Alt+ F: Wort vorwärts überspringen

Quelle

Alain
quelle
1
Willkommen bei Super User! Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Im Moment habe ich die Antwort für Sie bearbeitet.
Der Hochstapler