2009-11-18 2 views
1

Je veux commenter des lignes dans un code que j'ai. J'ai différents types de codes, et ils utilisent différents leaders de commentaires. Par exemple. en latex: '%', dans Fortran 90: '!' et en python: '#'. Je veux faire une commande de substitution qui ressemble à ceci:Pour commenter les correspondances dans Vim - indépendant sur le leader des commentaires?

:g/<search-string>/s/^/<add-comment-leader-here>/ 

Si cela est possible, je pourrais aussi faire une commande dans vim qui a commenté automatiquement le texte sélectionné. Quelque chose comme ceci:

vmap <z> :'<,'>s/^/<add-comment-leader-here>/ 

Toutes les idées sont les bienvenues! :)

Répondre

4

Extraire Enhanced Commentify: Je pense que cela fait ce que vous voulez: il détermine le leader du commentaire en fonction du type de fichier. Si vous voulez le faire vous-même, le plus simple serait de définir un mappage qui utilise exec pour créer une commande et inclure une variable définie dans votre fichier ~/.vim/after/ftplugin/c.vim et d'autres fichiers ftplugin. Alternativement, ajoutez simplement le même mapping (avec un leader différent) à chaque fichier ftplugin.

+1

Si vous utilisez EnhancedCommentify, vous devriez être en mesure de faire un générique: g//exe "normal \ Comment" - quel que soit le type de fichier actuel. –

+0

Si le lien est encore brisé, vous pouvez essayer ce miroir: https://github.com/vim-scripts/EnhCommentify.vim – olibre

5

Si vous ne l'avez pas déjà vu, vous pouvez être intéressé par le plugin Vim NERD Commenter.

+0

Avez-vous des commentaires à faire sur les différences entre NERD Commenter et Enhanced Commentify? Il semble que les deux font quelque chose comme ce que je veux faire ... (et merci pour la pointe, au fait!) –

+0

EnhancedCommentify est beaucoup plus ancien et a toujours répondu à mes besoins. En fin de compte, je n'ai jamais ressenti le besoin de tester le challenger. –

Questions connexes