Vim Surround + Répéter, enveloppements mon texte avec ^ M
Question
J'utilise des plug-ins surround et répétition de Vim pour envelopper des lignes de texte avec des balises HTML.
Je vais utiliser "Ysé
" et "ys $
", ils fonctionnent parfaitement.
J'essaie de répéter la commande avec « », et il montre
dans le terminal, mais chaque fois que j'appuyez sur Entrée pour exécuter la commande, remplace ambiophoniques ce qui doit être
et
avec ^ M .Mon apparence de ligne comme ^ Mtext ici ^ M
Je reconnais le caractère comme une ligne de fin, mais je ne comprends pas pourquoi surround pas envelopper ma ligne avec le code, il montre dans le terminal (ce qui est correct), mais à la place enveloppements ma ligne avec les fins de ligne DOS.
J'utilise gVim sur Windows XP, si cela fait une différence.
La solution
Il est en fait parce que <p>
est pas vraiment là quand vous répétez la commande avec .
Essayez ceci: Avant de répéter la commande avec .
premier coup o
pour vider la zone de ligne de commande de tout texte, puis appuyez sur .
Vous verrez qu'il est en fait vide, ce qui est la raison pour laquelle le curseur est sur le premier caractère.
Pour répéter l'emballage correctement, vous devez soit taper <p>
chaque fois ou enregistrer une macro rapide.
Macro: ys$<p>
Coller que dans vim, sélectionnez-le et tapez "py
Maintenant, vous pouvez exécuter la macro avec @p
Autres conseils
La documentation surround.vim
dit:
The "." command will work with ds, cs, and yss if you install repeat.vim, vimscript #2136.
Donc, si vous utilisez yss
il devrait fonctionner, mais apparemment d'autres versions de « ys
» ne sont pas pris en charge. Les sons comme une bonne fonctionnalité ont besoin pour présenter au propriétaire de repeat.vim
.