segunda-feira, 21 de agosto de 2023

A especial forma de copiar e colar texto no editor Vim

Copiar e colar no editor Vim, imagem com documentos simbolizando cópiar e colar.

Esta é uma das razões pelas quais adoro o editor Vim, a praticidade da funcionalidade para copiar e para colar o texto copiado.

Para copiar usamos a tecla y (yank) e para colar o texto copiado usamos a tecla p (put). Para quaisquer destas operações temos de estar em modo normal. O editor Vim inicia-se como padrão em modo normal.

Outros modos comuns são o modo insert, modo de linha de comando e modo visual.

Para nos certificarmos de que nos encontramos em modo normal, modo no qual devemos estar ao copiar ou colar texto, premimos a tecla <ESC>

Desde que se saiba como movimentar o cursor num documento: mudar de linha, retroceder e avançar numa linha, ir até uma determinada linha no texto, avançar um determinado número de palavras e assim por diante, entender como funciona o copy paste em Vim torna-se mais fácil.

Se ainda não faz ideia em como navegar o cursor no editor vim, aconselho que dê uma olhada neste artigo: Navegar no editor Vim

Imagem do post

Entender a lógica de navegação no editor Vim é de extrema importância para quem quer aprender o essencial. Depois de se sentir mais confortável com o básico então já estaremos em condições de dar o próximo salto.

Alguns comandos para copiar texto estando em modo normal

Tabela 1:   Alguns dos comandos para copiar texto no editor Vim:
ComandoFunção
yl ou (x)Copia o caractere encima do qual o cursor se encontra.
yh ou XCopia o caractere à esquerda do qual o cursor se encontra.
ywCopia uma palavra.
y2wCopia duas palavras seguidas.
y5wCopia cinco palavras seguidas.
y$Copia desde a posição inicial do cursor até ao final da linha.
y0Copia desde a posição inicial do cursor até ao início da linha.
yyCopia uma linha inteira, estando o cursor em qualquer ponto da linha que se quer copiar.
2yyCopia duas linhas seguidas, estando o cursor em qualquer ponto da linha onde se executa o comando.
yggCopia tudo, desde o ponto onde se encontra o cursor até ao início do documento.
yGCopia tudo, desde o ponto onde se encontra o cursor até ao fim do documento.

Agora compare com a tabela 2, o processo é igual copiar ou apagar, só o comando é que muda de y (yank) para d (delete)

Tabela 2:    Alguns dos comandos para apagar texto no Vim:
ComandoFunção
dl ou xApaga o caractere encima do qual o cursor se encontra.
dh ou XApaga o caractere à esquerda do qual o cursor se encontra.
dwApaga uma palavra.
d2wApaga duas palavras seguidas.
d5wApaga cinco palavras seguidas.
d$Deleta desde a posição inicial do cursor até ao final da linha.
d0Apaga desde a posição inicial do cursor até ao início da linha.
ddApaga uma linha inteira, estando o cursor em qualquer ponto da linha que se quer apagar.
2ddApaga duas linhas seguidas, estando o cursor em qualquer ponto da linha onde se executa o comando.
dggApaga tudo, desde o ponto onde se encontra o cursor até ao início do documento.
dGApaga tudo, desde o ponto onde se encontra o cursor até ao fim do documento.

Podemos concluir que as acções atrás referidas, copiar e apagar, têm muito a ver com a navegação do cursor no texto: o movimento.

A propósito, ao darmos o comando para copiar ou apagar, a porção do texto copiado ou apagado fica no que é chamado de "unnamed register" do editor Vim (registo anónimo) e o comando 'p' cola o texto apagado ou copiado num outro local do mesmo documento. Se copiarmos um texto e em seguida deletarmos uma parte de texto no documento, se dermos o comando 'p', a porção de texto que será colada será a porção que foi deletada porque ela sobrescreve a cópia anteriormente feita.

Tabela 3:    Copiar apagar e colar texto no editor Vim, diferença com a forma mais comum:
OperaçãoForma comumForma Vim
Copiar CTRL + c yank (y)
Cortar CTRL + x delete (d)
Colar CTRL + p put (p)

Vamos então experimentar?

Lista de tarefas:
  1. Copiar uma linha de texto.

  2. Colar essa linha de texto uma linha abaixo.

  3. Colar essa linha de texto uma linha acima.

  4. Colar essa linha de texto 5 linhas abaixo.

  5. Copiar uma palavra.

  6. Colar a palavra copiada logo a seguir.

  7. Colar a palavra copiada no final da linha.

  8. Copiar texto a partir de um determinado ponto e colar logo a seguir a última linha de texto no documento.

  9. Colar a porção do texto copiado 3 linhas abaixo.

  10. Colar a porção do texto copiado 5 linhas acima.

Experimente usar os comandos 'yank' (y) e 'put' (p) para copiar e colar texto em um arquivo no Vim editor.

Em caso de querer desfazer alguma acção (undo), estando em modo normal prima a tecla 'u'.

Em caso de querer refazer alguma acção (redo), estando em modo normal prima a tecla <CTRL> + r.

Exemplos levando em conta a Lista de tarefas logo acima:
  1. Pressione `yy` para copiar a linha de texto atual, a linha onde o cursor se encontra.

  2. Pressione `p` e o texto copiado é colado na linha abaixo do cursor.

  3. Para colar o texto acima da linha onde se encontra o cursor será só usar P maiúsculo.

  4. Para colar essa linha de texto 5 linhas abaixo: comando j5p.

  5. Para copiar uma palavra: posicione o cursor encima do primeiro caractere da palavra que se quer copiar e depois dê o comando yw.

  6. Para colar a palavra copiada logo a seguir, dê o comando 'p', poderá ser necessário inserir o espaço e para isso é só entrar em insert mode premindo a tecla 'i' estando com o cursor encima do primeiro caractere da palavra colada e premir tecla <SPACE>.

  7. Para colar a palavra copiada no final da linha, navegamos até ao final da linha comando '$' e em seguida teclamos 'p'.

  8. Para copiar texto a partir de um determinado ponto, navegamos com o cursor até ao ponto a partir do qual queremos copiar e damos o comando 'y$' para copiar desse ponto até ao final da linha ou desse ponto até ao início da linha com o comando 'y0'. Para colar a porção de texto logo após a última linha de texto no documento use o comando <SPACE> + g, (G) para navegar até ao final do texto e em seguida prima a tecla 'p'.

  9. Para colar a porção do texto copiado 3 linhas abaixo. Usamos o comando '3j' para nos posicionarmos 3 linhas abaixo e em seguida damos o comando 'p'.

  10. Para colar a porção do texto copiado 5 linhas acima usamos o comando '5k' para navegarmos 5 linhas acima e damos o comando 'p' para colar o texto.

Experimente usar cada um dos comandos da tabela 2 num texto aberto no editor Vim e use 'p' logo de seguida. Verás que ao deletarmos uma parte de texto essa parte de texto fica no registo e pode ser colado onde acharmos necessário.

Como podemos ver, a forma mais comum de copiar, deletar e colar no editor Vim é simples se soubermos como navegar o cursor no documento. À medida que formos praticando tudo parece ainda mais natural e vamos tomando gosto em usar este maravilhoso editor de texto.

Alguns posts relacionados:

Sem comentários:

Enviar um comentário