Coding

Copiando e colando utilizando vim

Copiando e colando utilizando vim

Se você já se deparou com a situação em que precisa copiar algum conteúdo no vim e ficou um pouco perdido, neste breve post irei explicar alguns conceitos e exemplos de utilização das funções de cópia no vim.

Registers e copiando e colando

O vim possui o conceito de ‘registers’ significando que você pode pensar em registers como endereços na memória os quais podem ser acessados posteriormente. Estes registros podem ser nomeados ou não(padrão). Todas as vezes que você utiliza o comando (y)ank o conteúdo é armazenado em um register não explícito, que na prática é a mesma coisa que ""y. Todas as vezes que você não utiliza um register específico, ele é automaticamente adicionado no register de índice 0; toda vez que você copia um novo conteúdo, este register é incrementado, de "0 até "9".

Para verificar os registers existentes, no modo comando do vim execute: :reg este comando lhe trará a lista conforme este exemplo:

:reg
Type Name Content
  c  ""   Conteúdo 1
  c  "0   Conteúdo 1
  c  "1   Conteúdo 2
  c  "a   Conteúdo a
  c  "b   Conteúdo b
  c  "c   Conteúdo c

Para inserir o conteúdo desejado, supondo que você nomeou seu register como r você pode efetuar os comandos:

Ctrl-r + r ou então "rp

Como copiar utilizando o clipboard

Primeiramente, você precisa confirmar se o suporte ao clipboard está habilitado, para isso execute o comando: vim --version | grep clipboard se a saída deste comando exibir algo como +clipboard significa que há o suporte. Para copiar para o clipboard do sistema, você pode utilizar o register "+

Dependendo da quantidade de linhas selecionadas ou seu tamanho, você perceberá que apenas um trecho do buffer é copiado, isto é devido a configuração:

:help 'viminfo'

Você verá algo parecido como: for others: '100,<50,s10,h, estes parâmetros significam:

  • '100 Limite de Marks lembrados
  • <100 Limites de linhas salvas para cada Register
  • s10 Limite de espaço em Kilobytes para cada register

Para alterar esses padrões você pode ajustar na linha de comando:

:set viminfo='100,<5000,s100,h

Ou então adicionar em seu ~/.vimrc a configuração desejada.