No Vim , como insiro caracteres no início de cada linha em uma seleção?
Por exemplo, eu quero comentar um bloco de código colocando um prefixo //
no início de cada linha, assumindo que o sistema de comentários do meu idioma não permita comentários de bloco como esse /* */
. Como eu faria isso?
Shift + v
não estava pressionandoCTRL + v
. @ vkaul11 Provavelmente a mesma coisa que você fez lolIsso substitui o início de cada linha por "//":
Isso substitui o início de cada linha selecionada (use o modo visual para selecionar) por "//":
Observe que
gv
(no modo normal) restaura a última seleção visual, que é útil de tempos em tempos.fonte
/
e ter que fugir do//
em:s/^/\/\/
vez de escrever:s!^!//
)O padrão geral para pesquisa e substituição é:
Substitui a primeira ocorrência de 'pesquisa' por 'substituir' para a linha atual
Substitui todas as ocorrências de 'pesquisa' por 'substituir' pela linha atual, 'g' é a abreviação de 'global'
Este comando substituirá cada ocorrência de 'pesquisa' por 'substituir' apenas para a linha atual. O% é usado para pesquisar sobre o arquivo inteiro. Para confirmar cada substituição interativamente, adicione um 'c' para confirmar:
Confirmação interativa, substituindo 'pesquisa' por 'substituir' para o arquivo inteiro
Em vez do caractere%, você pode usar um intervalo de número de linha (observe que o caractere '^' é um caractere de pesquisa especial para o início da linha) :
Insere um caractere '#' no início das linhas 14-20
Se você deseja usar outro caractere de comentário (como //), altere seu delimitador de comando:
Insere uma sequência de caracteres '//' no início das linhas 14-20
Ou você sempre pode simplesmente escapar dos // caracteres como:
Insere uma sequência de caracteres '//' no início das linhas 14-20
Se você não estiver vendo os números de linha no seu editor, digite o seguinte
fonte
#
na linha também. Você deve usar em seu^#
lugar.Outra maneira que pode ser mais fácil para os iniciantes:
Coloque o cursor na primeira linha, por exemplo,
gg
e digite o seguinte para entrar no modo de inserção e adicionar seu texto:
I / / Space
Pressione Escpara voltar ao modo de comando e use o dígrafo:
j . j .
jé um comando de movimento para descer uma linha e .repetir o último comando de edição que você fez.
fonte
|
vez de uma capitalI
. Eu pensei que era um|
no começo.E ainda outra maneira:
fonte
Isso adiciona
#
no início de cada linha:E as pessoas deixarão de reclamar da sua falta de scripts para comentar corretamente.
fonte
Se você quiser ser super estiloso, coloque isso no seu .vimrc:
Então, sempre no modo visual, você pode bater
\c
a c omment o bloco e\u
para u ncomment-lo. Obviamente, você pode alterar essas teclas de atalho para o que for.fonte
vmap
!Ainda outra maneira:
/^/
é apenas um padrão fictício para corresponder a todas as linhas.norm
permite executar os comandos do modo normal a seguir.I//
diz para entrar no modo de inserção enquanto pula o cursor para o início da linha e insira o texto a seguir (duas barras).:g
geralmente é útil para fazer algo complexo em várias linhas, onde você pode pular entre vários modos, excluir ou adicionar linhas, mover o cursor, executar várias macros etc. E você pode dizer para operar apenas em linhas que corresponde a um padrão.fonte
Para comentar blocos de código, gosto do plug-in NERD Commenter .
Selecione algum texto:
Comente:
Descomentar:
Ou apenas alterne o estado do comentário de uma linha ou bloco:
fonte
Eu posso recomendar o plugin EnhCommentify .
por exemplo. coloque isso no seu vimrc:
você pode comentar / descomentar as linhas (selecionadas) com ', c'
fonte
Marque a área a ser comentada como um bloco visual (
<C-V
)e fazer
c#<ESC>p
c
altere-o para "#"Se você fizer isso com frequência, defina um atalho (exemplo
\q
) em seu arquivo .vimrcfonte
Caso a seleção de várias linhas de alguém seja realmente um parágrafo, não há necessidade de selecionar manualmente as linhas. O vim pode fazer isso por você:
vip
: selecione e marque o parágrafo inteiroshift-i
: inserir texto no início da linhaescape
: sai do modo de inserção / entra no modo normal [início da linha ainda selecionado]escape
: desmarcar o início da linhafonte
Para inserir "ABC" no início de cada linha:
1) Vá para o modo de comando
2):% norma I ABC
fonte