J'utilise souvent plusieurs invocations forward-word
suivies d'une seule backward-word
pour déplacer le point au début d'un mot sur une ligne. Je suppose que je ne me suis jamais habitué à la façon dont forward-word
diffère de Vim w
et même après des années d'utilisation d'Emacs, je ne peux pas m'habituer à la différence.
Existe-t-il une fonction que je pourrais utiliser au lieu de forward-word
cela qui ne saute pas par-dessus les mots mais s'arrête également au début d'un mot? Existe-t-il d'autres stratégies pour passer au début d'un mot lors de la progression d'un point qui n'impliquent pas une exécution répétée forward-char
?
Réponses:
Le
misc
paquet (livré avec emacs) a la fonction intégréeforward-to-word
, qui fait ce que je pense que vous voulez:Pour l'utiliser, ajoutez d'abord
(require 'misc)
à votre fichier de configuration.la source
w
. Pour autant que je sache, il existe un mappage vim-emacs presque parfait:w
=forward-to-word
;e
=forward-word
;b
=backward-word
;ge
=backward-to-word
. Mais je ne suis pas un utilisateur expert de Vim, alors il me manque peut-être une subtilité.w
,e
etb
je m'éloigne et je me déplace. Bizarre. J'étais certain d'êtrew
arrêté aux deux points! Donc, j'accepte votre réponse, car elle correspond exactement à ma question :)Vous pouvez lier la fonction ci-dessous à
M-f
et lier l'originalforward-word
àM-F
. Cette fonction prend simplement learg
et le transmet à laforward-word
fonction. Ainsi, les arguments universels fonctionneront aussi bien qu'avec la fonction d'origine.Attention cependant, la fonction ci-dessus peut ne pas toujours faire la bonne chose ; cela dépend beaucoup du fait que le point se trouve déjà au début d'un mot ou non.
Voici une autre façon de mettre en œuvre ce qui précède où la limite de mot n'est pas conforme à la table de syntaxe mais strictement sur la séparation des espaces:
Le crédit va à @glucas pour cette idée.
la source
Après une longue et pénible recherche des fonctions parfaites de «mot avant / arrière», j'ai trouvé ce qui suit, dont je suis maintenant très heureux:
la source
Si vous êtes prêt à utiliser
evil
,w
dans un état normal est lié àevil-forward-word-begin
, qui est la fonctionnalité de style Vim que vous recherchez.la source
evil
il y a longtemps, mais depuis un certain temps j'utilisegod-mode
des liaisons Emacs régulières.Comme vous le mentionnez, l'astuce consiste à avancer deux mots, puis un mot à l'envers.
Ce qui suit devrait faire l'affaire et respecter les autres modes comme le mode sous-mot.
Il s'agit d'une version rudimentaire de /emacs//a/4272/508 qui ne couvre pas certains cas, mais plus facile à comprendre.
la source