A função C_CodeComment
não está definida em nenhum dos arquivos que vêm com versões recentes do Vim. Eu procurei um pouco e parece que você está usando o plug-in C / C ++ de Fritz Mehner . Ele fornece um C / C ++ > Comentários > código - > comentário / * * / item de menu (e \c*
mapping 1 ) que usa C_CodeComment
.
O comando put = ' */'
acrescenta uma nova linha (consulte :help :put
) que contém o conteúdo do registro especial =
, que avalia apenas o que vem depois dele como Expressão do Vim . A expressão específica usada aqui é apenas uma cadeia de três caracteres simples (espaço, asterisco, barra).
Você pode organizar que */
esteja no final da última linha 2 adicionando uma linha como
silent normal kJ^
após as linhas silent put = ' */'
. Move-se para a última linha comentada ( k
), une-a com a linha */
( J
) e, em seguida, move o cursor para o primeiro caractere não vazio da linha ( ^
); o \co
mapping 1 inclui um j
para mover o cursor para a próxima linha após a região recém-comentada.
Entretanto, ao fazer isso quebrará as suposições da função C_RemoveCComment
(que é usada pela função C_CommentCode
“inverse”): espera encontrar e processar */
no início da linha (depois do espaço em branco opcional).
Se você nunca usa o C / C ++ > Comentários > comentário - > código do item de menu ou \co
mapping 1 , então você poderá viver sem a capacidade de usar o recurso de comentário deste plug-in.
1 O \
"líder" dos mapeamentos pode ser diferente se você tiver redefinido localmapleader
.
2 Isso (na minha opinião) faz com que os comentários de múltiplas linhas pareçam estranhos (ou seja, selecionar mais de uma linha através da seleção da GUI ou modo visual antes de invocar os comentários) funcionalidade):
Com as duas linhas intermediárias selecionadas,
foo();
bar();
baz();
quux();
torna-se
foo();
/* bar();
* baz(); */
quux();
que parece um estilo estranho (normalmente, se *
de líderes são usados em linhas de intervenção, os asteriscos do /*
opener, os *
leaders e o */
ender são colocados no mesmo coluna).