/ / Argumente aus dem vorherigen Befehl in ZSH - Befehlszeile, zsh, k├Ânnen nicht abgerufen werden

Es k├Ânnen keine Argumente aus dem vorherigen Befehl in ZSH - Befehlszeile, zsh, abgerufen werden

Es gibt bekannte Verkn├╝pfungen, um Argumente des vorherigen Befehls in Bash abzurufen, z Alt+. oder $!, etc. Nichts davon funktioniert in meinem zsh, ich benutze einige zprezto-Module. Ich konnte nicht feststellen, dass dies durch zprezto-Module ge├Ąndert wurde. Kann es eine ZSH-Einstellung sein, die mir fehlt oder die ich m├Âglicherweise festgelegt habe und die dieses Verhalten deaktiviert hat?

Antworten:

1 f├╝r Antwort Ôäľ 1

ALT. ist meines wissens nicht bekannt. Ich gehe davon aus, dass dies durch etwas definiert ist, das Sie in Ihrem Bash-Startup geladen haben. (Was macht es f├╝r Sie?)

$! ist die Prozess-ID des zuletzt gestarteten untergeordneten Prozesses. Ich nehme an, das ist nicht was du tippen wolltest. :)

!$ ist eine (verk├╝rzte) Geschichtserweiterung, die sollte Erweitern Sie unter Standardbedingungen auf das letzte Argument des vorherigen Befehls. Die geschichtliche Erweiterung von zsh ist akribisch dokumentiert im zsh handbuch.

Verlaufserweiterungen beginnen normalerweise mit !Sie k├Ânnen dies jedoch ├Ąndern, indem Sie den Wert von einstellen $HISTCHARS: Das erste Zeichen von $HISTCHARS wird als der Charakter verwendet, der eine Geschichtserweiterung initiiert. Standardm├Ą├čig, $HISTCHARS wird auf einen Wert von gesetzt !^#. Sie k├Ânnen den Wert auf Ihrem System ├╝berpr├╝fen mit:

echo $HISTCHARS

Wenn das so ist nicht beginnen mit !, dann hat etwas in deinem zsh-Startup einen anderen Wert gesetzt, und Standard, bekannte History-Erweiterungen m├Âgen !! und !$ wird nicht f├╝r dich arbeiten.

Aktualisieren:

Es stellt sich heraus, dass der erste Absatz, den ich oben geschrieben habe, absolut falsch ist. Ich habe es vielleicht nicht gewusst ALT., aber das kann daran liegen, dass ich "immer" zsh mit aktiviertem vi-Modus verwendet habe. Eigentlich, ALT. (und ALT_, was dasselbe tut) sind in den Standard-Emacs-Tastenkombinationen von zsh aktiviert. Sie sind an das ZLE-Widget gebunden insert-last-word, der macht was du beschreibst.

Wenn Sie zsh mit den Standard-Emacs-Tastenkombinationen und verwenden ALT. funktioniert nicht f├╝r Sie, dann ├╝berschreibt etwas, das Sie in Ihrem Shell-Start laden, es. Sie k├Ânnen die Standard-Tastenkombinationen wiederherstellen mit:

bindkey -M emacs "^[." insert-last-word 
"^[_" insert-last-word