zsh !! und! $ auto automatisch ausführen wie in bash

7

Ich habe kürzlich von Bash zu Zsh gewechselt. Ich entdeckte zwei winzige Probleme und Unterschiede zwischen zsh und bash. Ich war etwas enttäuscht , als mein Liebling zwei Verknüpfungen !!und !$nicht so tun , als sie in der Bash tun.

Wenn ich mit den Argumentverknüpfungen Folgendes versuche (sorry, ich weiß nicht, wie sie formal genannt werden), werden sie in Bash automatisch wie folgt ausgeführt:

$ touch foo
$ vim !$
<file opens immediately>

Während sie in zsh sind, werden sie übersetzt und dann ausgeführt (ich muss ein zusätzliches Mal die Eingabetaste drücken):

$ touch foo
$ vim !$
$ vim foo

Gibt es eine Möglichkeit, !$& !!in zsh genauso zu verhalten wie in bash?

Chrisjlee
quelle

Antworten:

12

Von man zshoptions

HIST_VERIFY
    Whenever the user enters a line with history expansion,  don't  execute  the  line
    directly;  instead, perform history expansion and reload the line into the editing buffer.

Um diese Option zu deaktivieren, führen Sie sie aus setopt no_hist_verify. Sie können sich auch Ihre Konfigurationsdatei ansehen und die Option hist_verify entfernen oder sie einfach explizit deaktivieren.

Ulrich Dangel
quelle