Chaque fois que je modifie un script shell dans emacs et saisis trois chevrons pour rediriger une chaîne brute vers stdin, emacs insère les caractères «EOF» et une nouvelle ligne entre eux, donc
cat <<< 'some string'
devient
cat <<EOF
< 'some string'
Je peux revenir en arrière et supprimer les caractères supplémentaires pour obtenir le tampon dans l'état que je veux, mais c'est un comportement très désagréable, et cela ne semble se produire qu'en mode shell-script, qui est généralement la seule fois que je tape ce modèle. Est-il possible de désactiver ce comportement?
bash
shell-mode
Erik
la source
la source
<<<
avecC-3 <
.sh-mode-hook
n'a pas fonctionné pour moi, maissh-set-shell-hook
a fonctionné.glucas est exactement correct, mais pour compléter sa réponse, j'ai ce morceau de code que j'ai utilisé moi-même pour rendre l'insertion de doc un peu plus intelligente.
Ce conseil, couplé à
sh-electric-here-document-mode
activé, fait en sorte que si vous tapez deux chevrons, le document automatique ici sera créé, mais ensuite si le caractère suivant que vous tapez est un autre chevron, il reviendra et il vous restera juste <<<.Bien sûr , cela signifie que si vous voulez vraiment commencer un doc ici avec un chevron, vous aurez besoin d'insérer brut , il, C-q<. Cela dépend donc de ce que vous faites de plus, si vous faites plus de chaînes ici que de documents ici, cela peut être bien d'avoir, même si vous ne le faites pas, il est rare que vous souhaitiez commencer un document ici avec un chevron et être gêné.
la source