Como deletar o texto selecionado no editor vi


116

Estou usando o PuTTY e o editor vi. Se eu selecionar cinco linhas usando meu mouse e quiser excluí-las, como posso fazer isso?

Além disso, como posso selecionar as linhas usando meu teclado como faço no Windows, onde pressiono Shifte movo as setas para selecionar o texto? Como posso fazer isso no vi?


1
tenho a lista de homens impressa, mas não consegui encontrar como excluir o texto selecionado

x Excluir caractere à direita do cursor X Excluir caractere à esquerda do cursor D Excluir até o final da linha dd Excluir linha atual: d Excluir linha atual de lagmonster.org/docs/vi.html espero que ajude um pouco
Mawg diz para restabelecer Monica em

1
Perguntas do VIM sobre superusuário? RI MUITO!
Pascal Thivent

1
@Pascal: hmm, sim, você está certo. Resposta bem formatada, aliás. Ah, e a pergunta dele não era sobre o VIM, mas sobre VI. ;)
Marcel Korpel

Respostas:


215

Estou usando o PuTTY e o editor vi. Se eu selecionar cinco linhas usando meu mouse e quiser excluí-las, como posso fazer isso?

Esqueça o mouse. Para remover 5 linhas:

  • Vá para a primeira linha e digite d5d( ddexclui uma linha, d5dexclui 5 linhas) ~ ou ~
  • Digite Shift-vpara entrar modo de seleção linewise , mova o cursor para baixo, usando j(sim, utilização h, j, ke lpara mover para a esquerda , para baixo , para cima , para a direita , respectivamente, que é muito mais eficiente do que usar as setas) e digite dpara apagar a seleção.

Além disso, como posso selecionar as linhas usando meu teclado como faço no Windows, onde pressiono Shifte movo as setas para selecionar o texto? Como posso fazer isso no vi?

Como eu disse, use Shift-vpara entrar no modo de seleção de linha ou vpara entrar no modo de seleção de caractere ou para entrar no modo de seleção de bloco Ctrl-v. Em seguida, passar com h, j, ke l.

Sugiro passar algum tempo com o Vim Tutor (run vimtutor) para se familiarizar mais com o Vim de uma forma bem didática.

Veja também


1
Na verdade, o vim tem um ótimo suporte a mouse se o seu terminal o suportar. Por exemplo, usando o gpmdaemon em um console, ou rodando xtermou konsoleem um ambiente gráfico, você pode dizer ao vim set mouse=a(ou adicioná-lo ao seu .vimrc) e o mouse pode ser usado para seleção, redimensionamento de divisões, etc.
Ben Voigt

@Ben Você está certo, eu não uso o mouse, mas isso não significa que o VIM não possa lidar com ele (em certas circunstâncias). Na verdade, eu estava removendo essa parte imprecisa da minha resposta enquanto você digitava.
Pascal Thivent

Além disso, é realmente difícil dizer quando seu V é maiúsculo ou não ... Eu sugiro dizer [Shift] + [V] para a seleção do modo de linha.
Ben Voigt

Eu sei que tem sido um tempo, mas por que usar h, j, ke lseria muito mais eficiente do que usando as setas? Não vejo nenhum problema em usar as setas e o resultado final parece o mesmo. Além disso, as flechas foram projetadas primeiro para esse propósito, então seu arranjo parece muito mais intuitivo (pelo menos para mim)
Frederico Pantuzza

1
@FredericoPantuzza É uma questão de movimento do braço nesse ponto - o objetivo é manter seus dedos nas teclas da linha principal o tempo todo. Ter que pegar o braço direito e deslizá-lo até as teclas de seta para usá-las aumenta com o tempo.
AndrewF

59

Faça da maneira vi.

Para deletar 5 linhas pressione: 5dd(5 deletar)

Para selecionar (na verdade, copiá-los para a área de transferência) você digita: 10yy

É um pouco difícil de entender, mas muito prático de aprender ao usar esses terminais remotos

Esteja ciente das curvas de aprendizado para alguns editores:


(fonte: calver em unix.rulez.org )


31

Se você deseja excluir usando números de linha, pode usar:

:startingline, last line d

Exemplo:

:7,20 d

Este exemplo excluirá as linhas 7 a 20.


Não tenho conhecimento dessa dica até agora. Ele funciona como um encanto! Obrigado!
Tung

13

Destacar com o mouse apenas destaca os personagens no terminal. O VI realmente não obtém essas informações, então você deve destacar de forma diferente.

Pressione 'v' para entrar em um modo de seleção e use as teclas de seta para movê-lo. Para excluir, pressione x. Para selecionar linhas de uma vez, pressione shift + v. Para selecionar blocos, tente ctrl + v. Isso é bom para, digamos, inserir muitas linhas de comentário na frente do seu código :).

Estou bem com VI, mas demorei um pouco para melhorar. Meus colegas de trabalho me recomendaram esta folha de dicas . Eu mantenho uma impressão na parede para aqueles momentos estranhos em que me esqueço de algo.

Feliz hacking!


6

Ao usar um terminal como o PuTTY , geralmente os cliques do mouse e as seleções não são transmitidos ao sistema remoto. Então, o vi não tem ideia de que você acabou de selecionar algum texto. (Existem exceções, mas em geral as ações do mouse não são transmitidas.)

Para deletar múltiplas linhas no vi, use algo como 5dddeletar 5 linhas.

Se você não estiver usando o Vim , eu recomendo fortemente que o faça. Você pode usar a seleção visual, onde você pressiona Vpara iniciar um bloco visual, move o cursor para a outra extremidade e pressiona dpara excluir (ou qualquer outro comando de edição, como ypara copiar).


1
@Justin L .: Use <kbd>a</kbd>.
Greg Hewgill

1
Obrigado! : D Há mais algum destes escondido em algum lugar?
Justin L.

1
Putty é capaz de transmitir comandos do mouse; a primeira frase pode estar desatualizada.
congusbongus

3

Se você quiser remover todas as linhas de um arquivo do seu número de linha atual, use dG, isso apagará todas as linhas, (shift g)significa fim de arquivo

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.