2010-05-05 4 views
4

Dans le fichier de dictionnaire, que je suis en train d'éditer, j'ai souvent besoin d'insérer le caractère "◊" au lieu de <>. Y at-il un moyen de mapper "◊" à une certaine clé de sorte que j'appuie sur "r" pour remplacer, puis my_shortcut pour avoir <> remplacé par "◊"? J'ai trouvé un moyen de rendre la cartographie imap dans Vimrc:Comment raccourcir le caractère de diamant dans vim

:imap <> ◊ 

Mais changer en mode encart est sous-optimale, que ce serait possible de le faire tout en remplacer le mode et que dois-je écrire. vimrc pour ça?

Répondre

6

Avec thhe carte ci-dessous

:map r<> :%s/<>/◊/g<CR> 

vous pouvez appuyer sur r<> qui remplacera toutes les occurences de <> avec ◊ dans le tampon courant.

La carte (ou plutôt la substitution qui est appelée avec elle) vous donnera si le modèle ne se trouve pas une erreur E486. Si vous ne voulez pas une telle erreur, vous voulez spécifier le drapeau e à la commande de substitution:

:map r<> :%s/<>/◊/ge<CR> 

Vous pouvez placer une de ces correspondances dans votre fichier .vimrc.

+0

Merci beaucoup! Cela a bien fonctionné, avec un changement - je n'ai pas besoin de faire des changements radicaux pour tout le document, cela m'effraie - faire des changements juste pour cette instance. Donc, je supprime "%" de l'équation. carte r <>: s/<>/◊/ge . Cela me permet encore permutés <> avec char diamant « ◊ » sans distraire de la fenêtre vim à elle recherche dans une application X, comme navigateur Web. – Temujin

5

Vous pouvez également utiliser la fonction digraphe de vim, appuyez sur CTRL-K suivi de cD et vous obtenez un diamant. Ou si CTRL-K est mappé à quelque chose d'autre (certains scripts ont tendance à le remapper), vous pouvez :set digraph et utiliser c <BS> D en mode insertion.

+0

Vim est comme du texte Photoshop, si caractéristiques beaucoup ... Je n'ai pas entendu parler de « fonction digraph ». Mais cela fonctionne en effet! – Temujin

2

Avez-vous essayé d'utiliser une abréviation pour cela? Vous pouvez faire:

:abbr <> ◊ 

Et chaque fois que vous tapez <> suivi de l'espace (ou tout autre caractère non mot-clé) en mode d'insertion, il sera remplacé par « » ◊ « ».

Questions connexes