Wenn Sie eine Bash-Skriptdatei mit Emacs bearbeiten und versuchen, sie einzugeben <<<
, <
fügen Sie beim zweiten Emacs eine Vorlage für ein Here-Dokument ein, wie im folgenden Beispiel:
<<EOF
EOF
Dies ist nicht die gewünschte Ausgabe, da ich ein Literal eingeben würde <<<
.
Im Moment greife ich darauf zurück < < <
, Leerzeichen einzugeben und dann zu löschen, aber ich ziehe es vor, sie direkt eingeben zu dürfen.
bash
emacs
autocomplete
Enzotib
quelle
quelle
Antworten:
Es ist eigentlich nicht erforderlich, dass Toms benutzerdefinierte
my-disable-here-document
Funktion die Tasten neu bindet. Diese Funktion kann aktiviert und deaktiviert werden mitsh-electric-here-document-mode
:(Es kann auch über auf den aktiven Puffer umgeschaltet werden
M-x sh-electric-here-document-mode
.)quelle
sh-mode-hook
hat bei mir nicht funktioniert, abersh-set-shell-hook
funktioniert.Binden
<
anself-insert-command
in der Bash - Modus und dann wird es nur den Charakter einfügen.Standardmäßig ist es
sh-maybe-here-document
im Bash-Modus gebunden und diese Funktion führt das automatische Einfügen durch.Hier ist eine Möglichkeit, den Schlüssel zurückzuprallen:
quelle
<
sieself-insert-command
standardmäßig gebunden ist .Wenn der einzige Grund, warum Sie das Here-Doc- Verhalten deaktivieren möchten, darin besteht, dass Sie keine Here-Zeichenfolge <<< einfügen können ,
C-<
funktioniert die Bindung an eine enthaltene Funktion(insert "<<<")
und lässt die automatische Here-Doc- Vorlage weiterhin zuquelle
Ich gehe
<<<
wie M-3<im Shell-Modus.quelle
Art < C-q < <
quelle
Nach einem Blick auf: http://web.mit.edu/dosathena/sandbox/emacs-19.28/lisp/sh-script.el habe ich diese Lösung gefunden:
quelle