Immer wenn ich ein Shell-Skript in Emacs bearbeite und drei Chevrons eingebe, um eine rohe Zeichenfolge in stdin umzuleiten, fügt Emacs die Zeichen 'EOF' und eine neue Zeile dazwischen ein
cat <<< 'some string'
wird
cat <<EOF
< 'some string'
Ich kann zurückgehen und die zusätzlichen Zeichen löschen, um den Puffer in dem von mir gewünschten Zustand zu erhalten, aber dies ist ein sehr unangenehmes Verhalten, und es scheint nur im Shell-Skript-Modus zu geschehen, was normalerweise das einzige Mal ist, dass ich dieses Muster tippe. Gibt es eine Möglichkeit, dieses Verhalten zu deaktivieren?
quelle
<<<
mitC-3 <
.sh-mode-hook
hat bei mir nicht funktioniert, hat abersh-set-shell-hook
funktioniert.Glucas ist genau richtig, aber als Ergänzung zu seiner Antwort habe ich dieses Stück Code, das ich selbst verwendet habe, um das Einfügen eines Dokuments ein wenig schlauer zu machen.
Dieser Hinweis in Verbindung mit "
sh-electric-here-document-mode
enabled" bewirkt, dass beim Eingeben von zwei Pfeilen das automatische Dokument "here doc" erstellt wird. Wenn Sie jedoch als nächstes ein anderes Zeichen eingeben, wird es zurückgesetzt und Sie haben nur noch "<<<".Dies bedeutet natürlich, dass Sie, wenn Sie ein Here-Dokument mit einem Chevron starten möchten, es roh einfügen müssen C-q<. Es hängt also davon ab, wovon Sie mehr machen. Wenn Sie hier mehr Zeichenfolgen als hier Dokumente machen, kann dies eine gute Sache sein, auch wenn dies nicht der Fall ist belästigt werden.
quelle