Lors de la modification d'un fichier de script bash avec emacs et de la tentative de saisie <<<
, au deuxième <
emacs, insérez un modèle pour un document ici, comme dans l'exemple suivant:
<<EOF
EOF
Ce n'est pas la sortie souhaitée, car j'entrerais un littéral <<<
.
Pour le moment, j'ai recours à l'entrée < < <
, puis à la suppression d'espaces, mais je préfère être autorisé à y entrer directement.
bash
emacs
autocomplete
enzotib
la source
la source
Réponses:
Il n'y a en fait pas besoin de la
my-disable-here-document
fonction personnalisée de Tom pour relier les touches. Cette fonctionnalité peut être activée et désactivée avecsh-electric-here-document-mode
:(Il peut également être basculé pour le tampon actif via
M-x sh-electric-here-document-mode
.)la source
sh-mode-hook
n'a pas fonctionné pour moi, maissh-set-shell-hook
a fonctionné.Liez
<
àself-insert-command
en mode bash, puis il n'insérera que le caractère.Par défaut, il est lié
sh-maybe-here-document
en mode bash et cette fonction effectue l'insertion automatique.Voici un moyen de rebondir la clé:
la source
<
est liéeself-insert-command
par défaut.Si la seule raison pour laquelle vous souhaitez désactiver le comportement ici-doc est qu'il vous empêche d'insérer une chaîne ici <<<, alors la liaison
C-<
à une fonction qui contient(insert "<<<")
fonctionnera et autorisera toujours le modèle auto ici-docla source
J'entre
<<<
comme M-3<en mode shell.la source
Type < C-q < <
la source
Après avoir jeté un œil à: http://web.mit.edu/dosathena/sandbox/emacs-19.28/lisp/sh-script.el, j'ai trouvé cette solution:
la source