Ищу способ комментировать отдельные строки (однострочные комментарии) в исходных кодах как в визуальном режиме, так и в режиме вставки, при всем этом хотелось бы обойтись простой правкой .vimrc без дополнительных плагинов. Уверен, что это возможно, поэтому прошу указать от чего бы можно было оттолкнуться.
Ответ
В качестве отправной точки можно поступить, например, следующим образом.
function! GetCommentStyleByFileType()
let file_name = buffer_name('%')
if file_name =~ '\(\.\|_\)vim'
return ["\"", '']
elseif file_name =~ '\.\(bat\|cmd\)'
return ['::', '']
elseif file_name =~ '\.\(c\|cpp\|cs\|js\|php\)'
return ['//', '']
elseif file_name =~ '\.\(ht\|x\)ml$'
return ['']
elseif file_name =~ '\.\(lua\|sql\)'
return ['--', '']
elseif file_name =~ '\.\(vb\|vbs\)'
return ["'", '']
endif
return ['#', '']
endfunction
au BufEnter * let b:comment = GetCommentStyleByFileType()
function! CommentLine()
let stsymbol = b:comment[0]
let endsymbol = b:comment[1]
exe ":sil! norm 0i" . stsymbol . "\
Так, чтобы закомментировать строку нужно нажать Alt+C, чтобы снять комментирование со строки - Alt+U. Можно забиндить на другое сочетание клавиш, использование Alt+некая_клавиша здесь для примера, ровно как и сами функции, - поэкспериментируйте, возможно сделаете нечто удобное и полезное не только для себя.
Комментариев нет:
Отправить комментарий