
:command Linecomment :normal ^i/*<ESC>$a*/<ESC>
O comando acima foi criado para comentar uma linha inteira em C, normalmente para fins de depuração e outros enfeites.
Eu queria saber que tipo de modificações seriam necessárias para transformar isso em uma função, e que função semelhante comentaria da posição do cursor até o final da linha?
Responder1
Para fatorar uma função (o que é útil quando os comandos de mapeamento ficam mais longos), a única coisa que você precisa considerar é que teclas especiais como <Esc>
essa que funcionam no lado direito do mapeamento não funcionam dentro da função; você precisa usar :execute
aspas duplas e escapar delas:
function Linecomment()
execute "normal ^i/*\<ESC>$a*/\<ESC>"
endfunction
command Linecomment call Linecomment()
Para comentar a partir da posição do cursor, basta soltar o ^
movimento no início.
No entanto, para uma solução de comentários verdadeiramente poderosa e robusta, recomendo usar um dos plug-ins populares: