Если вам нужны комментарии в стиле c (которые, как я считаю, допустимы в javascript), вы можете установить следующее в вашем .vimrc, который закомментирует строку, в которой находится курсор (в обычном режиме). *
map \lo I/*<Esc>A*/<Esc>
Если вы хотите комментарии к Python, вы можете сделать следующее:
map \lo I#<Esc>
Если вы хотите иметь только одно утверждение, вы можете сделать:
if match(expand("%:t"), ".py") != -1
map \lo I#<Esc>
else
map \lo I/*<Esc>A*/<Esc>
endif
, который будет использовать # комментарий, если вы редактируете файл .py, а в противном случае используйте / * ... * / comment.
РЕДАКТИРОВАТЬ: следующая функция закомментирует визуально выбранный блок с соответствующими комментариями стиля, проверив тип файла. Затем вы можете сопоставить его с чем-то простым, например с оператором vmap, следующим за функцией.
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>
Игнорировать причудливую подсветку синтаксиса. Похоже, что подсветка синтаксиса не поддерживает vimscript.