
:command Linecomment :normal ^i/*<ESC>$a*/<ESC>
上記のコマンドは、通常はデバッグなどの目的で、C の行全体をコメント アウトするために私が考案したものです。
これを関数にするにはどのような変更が必要か、またカーソル位置から行末までコメントする同様の関数は何か疑問に思いました。
答え1
関数を分離するには (マッピング コマンドが長くなったときに便利です)、<Esc>
マッピングの右側で機能する特殊キーが関数内では機能しないということだけを考慮する必要があります。:execute
二重引用符を使用してエスケープする必要があります。
function Linecomment()
execute "normal ^i/*\<ESC>$a*/\<ESC>"
endfunction
command Linecomment call Linecomment()
カーソル位置からコメントするには、^
開始時にモーションをドロップするだけです。
ただし、本当に強力で堅牢なコメント ソリューションが必要な場合は、人気のあるプラグインのいずれかを使用することをお勧めします。