
:command Linecomment :normal ^i/*<ESC>$a*/<ESC>
Приведенная выше команда — это команда, которую я придумал, чтобы закомментировать целую строку в C, обычно для отладки и подобных целей.
Мне было интересно, какие модификации потребуются, чтобы превратить это в функцию, и какая подобная функция будет комментировать от позиции курсора до конца строки?
решение1
Чтобы выделить функцию (что полезно, когда команды отображения становятся длиннее), единственное, что вам нужно учесть, это то, что специальные клавиши, подобные <Esc>
той, что работает в правой части отображения, не работают внутри функции; вам нужно использовать :execute
двойные кавычки и экранировать их:
function Linecomment()
execute "normal ^i/*\<ESC>$a*/\<ESC>"
endfunction
command Linecomment call Linecomment()
Чтобы оставить комментарий с позиции курсора, вам просто нужно отпустить ^
движение в начале.
Однако для действительно мощного и надежного решения для комментирования я бы рекомендовал использовать один из популярных плагинов: