Uma maneira smatrer para un-comentários no Vim

0

Acho que uma boa maneira de fazer os comentários é o mapeamento de chaves. Eu preciso comentar / un-comment c código de estilo, aqui é o meu mapeamento

nnoremap <leader>c 0<insert>//<Esc>                                                                  
nnoremap <leader>' 0xx

o segundo é para não comentar, apenas move o cursor para o início da linha e apaga 2 vezes.

Gostaria de saber se existe a possibilidade de escrever aqui uma declaração if, quero dizer mover o cursor no início da linha e verificar se os dois primeiros caracteres estão invertidos, se sim, então delete duas vezes, se não, não faça nada

Obrigado

    
por SLN 12.01.2018 / 22:40

1 resposta

1

I wonder is there a possibility to write an if statements here, I mean moving the cursor in the beginning of the line and check if the first two characters is backslash, if yes, then delete twice, if not, do nothing

Isso é certamente possível. No entanto, é muito mais simples se feito com um regex simples:

nnoremap <leader>' :s/^\/\/<cr>

Felizmente, podemos escolher o separador a usar, por isso, não precisaremos sair das barras se alterarmos os separadores:

nnoremap <leader>' :s;^//<cr>

Como observação, se você executar isso em uma macro e executá-lo em uma linha sem um comentário no início, a macro não será mais executada. Se você não quiser que isso aconteça, adicione o sinalizador /e , por exemplo:

nnoremap <leader>' :s;^//;;e<cr>

Além disso, se você quiser também descomentar linhas onde o comentário após algum espaço em branco, por exemplo:

//Remove these comments
    //And these ones too

Então eu faria:

nnoremap <leader>' :s;^\s*//<cr>
    
por 12.01.2018 / 23:46