Solution de contournement la plus simple: permet ciWde sélectionner un mot délimité par des espaces.
Le problème le plus important concerne la valeur du _caractère dans la table de syntaxe . Le problème est qu’il _s’agit par défaut d’un constituant de symbole dans la table de syntaxe et que vous souhaitez le traiter comme un constituant de mot.
Si vous utilisez emacs 24.4, vous pouvez essayer de l'activer superword-mode. Je n'ai pas essayé moi-même, donc votre kilométrage peut varier.
Une alternative consiste simplement à modifier vous-même la table de syntaxe et à indiquer à Emacs que vous souhaitez que le _caractère soit considéré comme un mot constituant, comme suit:
(modify-syntax-entry ?_ "w")
Une fois que vous avez fait cela, ciwfonctionne comme vous le souhaitez, de sorte qu'il sélectionne tout abc_def_ghiplutôt que juste def.
Faire cela de cette manière peut toutefois être exagéré, surtout si vous voulez seulement que cela _compte dans le mot pour l’objet texte. Au lieu de cela, vous pouvez conseiller evil-inner-wordcomme suit:
(defadvice evil-inner-word (around underscore-as-word activate)
(let ((table (copy-syntax-table (syntax-table))))
(modify-syntax-entry ?_ "w" table)
(with-syntax-table table
ad-do-it)))
Maintenant, _reste un symbole constitutif de tout sauf de l'objet texte de mot intérieur, donc ciwfera exactement ce que vous voulez sans toucher à la fonctionnalité de quoi que ce soit d'autre.
Vous pouvez en savoir plus sur la modification des tables de syntaxe sur le nœud EmacsWiki .
w,aw, etc.), vous pouvez faire la même chose avec les fonctions suivantes aussi:evil-forward-word-begin,evil-forward-word-end,evil-backward-word-begin,evil-backward-word-end,evil-a-word,evil-inner-word. Remarque: vous devez modifierunderscore-as-worddifférentes valeurs uniques (arbitraires).