No Vim, qual é a melhor maneira de selecionar, excluir, ou comente grandes porções de multi-ecrã de texto?

StackOverflow https://stackoverflow.com/questions/58584

  •  09-06-2019
  •  | 
  •  

Pergunta

Selecionando uma grande quantidade de texto que se estende ao longo de muitas telas em uma IDE como o Eclipse é bastante fácil, pois você pode usar o mouse, mas qual é a melhor maneira de exemplo:selecione e exclua multiscreen blocos de texto ou escrever e.g.três grandes métodos para outro arquivo e, em seguida, elimine-os para fins de teste no Vim ao usá-lo via putty/ssh onde você não pode usar o mouse?

Eu posso facilmente copie-para-o-fim-de-linha ou copie-para-o-fim-do-código-bloco, mas se o texto se estende ao longo de muitas telas, ou tem muitas linhas em branco, eu sinto que minhas mãos estão atadas no Vim.Todas as soluções?

E uma pergunta:existe uma maneira de, de alguma forma, selecione 40 linhas e, em seguida, comentar todas elas (com "#" ou "//"), como é comum na maioria das IDEs?

Foi útil?

Solução

Bem, primeiro de tudo, você pode definir vim para trabalhar com o mouse, o que permitirá que você selecione o texto, assim como você faria em Eclipse.

Você também pode usar a seleção Visual - v, por padrão.Uma vez selecionada, você pode yank, cut, etc.

Na medida comentar o bloco, normalmente, seleccione-a com VISUAL, e , em seguida, fazer

:'<,'>s/^/# /

Substituindo o início de cada linha com um #.(O '< e '> marcadores são o início e o e da seleção visual.

Outras dicas

Uso de marcadores.

Ir para o topo do bloco de texto que você deseja excluir e inserir

ma

em qualquer lugar na linha.Nenhuma necessidade para o dois-pontos.

Em seguida, vá para o final do bloco e digite o seguinte:

:'a,.d

Entrar ma tem de definir o marcador a para o caractere sob o cursor.

O comando que você digitou depois de mover para a parte inferior do bloco de texto diz que "a partir da linha que contém o personagem descrito pelo marcador a ('um) para a atual (linha de.) delete."

Este tipo de coisa pode ser usado para outras coisas também.

:'a,.ya b     - yank from 'a to current line and put in buffer 'b'
:'a,.ya B     - yank from 'a to current line and append to buffer 'b'
:'a,.s/^/#/   - from 'a to current line, substitute '#' for line begin
(i.e. comment out in Perl)
:'s,.s#^#//#  - from 'a to current line, substitute '//' for line begin
(i.e. comment out in C++)

N. B. 'a (apóstrofo-a) refere-se para a linha que contém o carácter marcado por a.`um(backtick-a) refers to the character marked byum`.

Para inserir comentários selecione o início caracteres de linhas usando CTRL-v (blockwise-visual, e não 'v' personagem sábio-visual ou 'V' linewise-visual).Em seguida, vá para inserir de modo a utilizar um 'eu', introduza o seu comentário caracteres(s) na primeira linha (por exemplo,'#') e, finalmente, escapar ao modo normal usando a tecla "Esc".Voila!

Para remover os comentários utilizar blockwise-visual para selecionar os comentários e elimine-os usando 'x'.

Utilize o visual do bloco de comando v (ou V para todo linhas e C-V para blocos retangulares).Enquanto no visual no modo de bloqueio, você pode usar qualquer movimento de comandos, incluindo pesquisa;Eu uso } frequentemente para pular para a próxima linha em branco.Uma vez que o bloco é marcado, você pode :w-lo para um arquivo, apagar, colar, ou o que seja.Se você executar um comando e o bloco visual vai embora, volte a seleccionar o mesmo bloco com o gv.Veja :ajuda visual-alteração para mais.

Eu acho que não são específicos do idioma scripts que vêm com o vim que fazer as coisas como o comentário blocos de código em uma forma que se encaixa o seu idioma de escolha.

Prima V (maiúsculas V) e, em seguida, prima 40j para selecionar 40 linhas e, em seguida, prima d para excluí-los.Ou como @zigdon respondeu, você pode comentá-las.

O modo visual é a solução para o seu problema principal.Para comentar seções de código, existem muitos plugins para que no vim.org, eu estou usando tComment.vim no momento.

Há também uma maneira interessante de comentar um bloco sem um plugin.Vamos dizer que você trabalha em python e # é o caractere de comentário.Faz um visual bloco de seleção de coluna que você deseja que o sinal de cerquilha ser, e tipo eu#ESCAPAR.Para inserir um bloco visual do modo de pressione C-q no windows ou C-v em linux.

Ou você pode querer dar esse script tentar...

http://www.vim.org/scripts/script.php?script_id=23

Meu bloco de comentário técnica:

Ctrl+V para iniciar blockwise modo visual.

Fazer a sua selecção.

Com a seleção ainda ativa, Mudança+Eu.Este colocá-lo na coluna modo de inserção.

Tipo de caracteres de comentário '#' ou '//' ou o que quer que seja.

ESC.

Se você deseja executar uma ação em uma série de linhas, e você sabe os números de linha, você pode colocar a faixa na linha de comando.Por exemplo, para excluir linhas de 20 a 200 você pode fazer:

:20,200d

Para mover as linhas 20 e 200 para onde a linha 300 é que você pode usar:

:20,200m300

E assim por diante.

Para comentar linhas, gostaria de sugerir um desses plug-ins:

EnhancedCommentify

NERD Comentarista

Eu me encontrar com o NERD mais esses dias, mas eu usei EnhancedCommentify por anos.

Utilização Mudança+V para ir em modo visual, em seguida, você pode selecionar linhas e excluir / alterar-los.

O meu método usual para comentar 40 linhas seria colocar o cursor na primeira linha e digite o comando:

:.,+40 anos/^/# /

(Por aqui através de 40 linhas de frente, substituto iniciar-de-linha com hash, espaço) Parece um pouco mais do que alguns outros métodos sugeridos, mas eu gosto de fazer as coisas com o teclado em vez do mouse.

Primeira resposta é, actualmente, não é bem assim?Para comentar seleção, pressione ':' e digite o comando :'<,'>s/^/# /g

('<, '> - será não automaticamente)

Você deve estar ciente de que o modo normal de comando [count]CTRL-D.Opcionalmente, ela altera o 'deslocamento' opção 10 para [contar] e, em seguida, desloca-se para baixo que muitas linhas.Pressionando CTRL-D novamente irá rolar para baixo que mesmo linhas novamente.

De modo a tentar entrar

V     "visual line selection mode
30    "optionally set scroll value to 30
CTRL-D  "jump down a screen, repeated as necessary
y      " yank your selection

CTRL-U funciona da mesma maneira, mas desloca-se para cima.

v entra visual de modo de bloco, onde você pode selecionar se com shift na maioria dos editores comuns, mais tarde, você pode fazer qualquer coisa que você normalmente pode fazer com os comandos normais (substituição :'<,'>s/^/#/ preceder com um comentário, por exemplo), em que<,'> significa o visual selecionado o bloco, em vez de todo o texto.

marcas seria o mais simples mb onde vc quiser começar e me onde vc quer terminar uma vez feito isso você pode fazer praticamente qualquer coisa que você quiser

:'b,'ed

elimina a partir do marcador b para marcador e

comentar 40 linhas que você pode fazer no modo visual

V40j:s/^/#/

vai comentar 40 linhas onde u iniciar a sequência

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top