Vim est presque parfait pour moi. Mais je veux toujours un commentaire de ligne et une fonction de commentaire de bloc, je veux savoir comment écrire un vimrc pour le faire en python et javascript.vim: ajouter un commentaire macros
portland pur
Vim est presque parfait pour moi. Mais je veux toujours un commentaire de ligne et une fonction de commentaire de bloc, je veux savoir comment écrire un vimrc pour le faire en python et javascript.vim: ajouter un commentaire macros
portland pur
Si vous voulez des commentaires de ligne de style c (que je crois légale en javascript), vous pouvez définir ce qui suit dans votre fichier .vimrc, qui commentera la ligne sur laquelle le curseur est en mode normal.
map \lo I/*<Esc>A*/<Esc>
Si vous voulez des commentaires de python, vous pouvez effectuer les opérations suivantes:
map \lo I#<Esc>
Si vous voulez avoir une seule déclaration, vous pouvez faire:
if match(expand("%:t"), ".py") != -1
map \lo I#<Esc>
else
map \lo I/*<Esc>A*/<Esc>
endif
qui utilisera le # commentez si vous modifiez un fichier .py et utilisez le commentaire/* ... * /.
EDIT: la fonction suivante commentera un bloc sélectionné visuellement avec les commentaires de style appropriés en vérifiant le type de fichier. Vous pouvez ensuite le mapper sur quelque chose de facile comme l'instruction vmap qui suit la fonction.
function! BlockComment(top,bottom)
" deal with filetypes that don't have block comments
let fileName = expand("%:t")
echo fileName
if fileName =~ "\.py" || fileName =~ "\.sh" || fileName =~ "\.pl"
execute "normal I# "
return
elseif fileName =~ "\.vim"
execute 'normal I" '
return
endif
" for c-style block comments (should work for javascript)
let topLine = line("'<")
" the + 1 is because we're inserting a new line above the top line
let bottomLine = line("'>") + 1
" this gets called as a range, so if we've already done it once we need to
" bail
let checkLine = getline(topLine - 1)
if (checkLine =~ '\/\*')
return
endif
let topString = "normal " . topLine . "GO/*"
let bottomString = "normal " . bottomLine . "Go*/"
execute topString
execute bottomString
endfunction
vmap <Leader>bco<CR> :call BlockComment()<CR>
Ignorez la mise en évidence de la syntaxe farfelue. Il semble que la syntaxe highlighter ne soit pas compatible avec vimscript. Par fonctionnalité de commentaire de bloc, voulez-vous dire sélectionner un bloc avec le mode visuel, puis placer des commentaires de bloc autour de lui?
Le commentateur NERD est à mon humble avis la meilleure façon de procéder. – dsummersl
tcomment fournit un opérateur qui intègre assez bien avec la vim manière dont fonctionne: http://www.vim.org/scripts/script.php?script_id=1173
Il prend en charge moins de commentaires styles que le déjà ballot mentionné cependant.
Ou quoi? – alesplin
oui, sélectionnez un bloc avec le mode visuel, puis placez des commentaires de bloc –
Édité ma réponse pour inclure une fonction qui commentera les blocs visuellement sélectionnés. – alesplin