Como colar texto arrancado na linha de comando Vim?

I'gostaria de colar texto arrancado na linha de comando da Vim. É possível?

Solução

Sim. Hit Ctrl-R depois ". Se tiver caracteres de controlo literais no que puxou, utilize kbd>Ctrl-R, Ctrl-O, ". Aqui está uma explicação do que você pode fazer com os registros. O que pode fazer com os registos é extraordinário e, uma vez que saiba como utilizá-los, não poderá viver sem eles. Os registradores são basicamente locais de armazenamento de cordas. Vim tem muitos registros que funcionam de diferentes maneiras:

  • 0 (registro yank: quando você utiliza y no modo normal, sem especificar um registro, o texto yanked vai para lá e também para o registro padrão),
  • 1 a 9 (mudando registros de exclusão, quando você utiliza comandos como c ou d, o que foi excluído vai para o registro 1, o que estava no registro 1 vai para o registro 2, etc.),
  • " (registro padrão, também conhecido como registro sem nome. É aqui que o " vem em Ctrl-R, "),
  • a' az' para seu próprio uso (os A' aZ' em maiúsculas são para anexar aos registros correspondentes).
  • _ (age como /dev/null (Unix) ou NUL (Windows), você pode escrever para ele mas ele's descartado e quando você lê dele, ele está sempre vazio),
  • - (pequeno registo de eliminação),
  • / (registro de padrão de busca, atualizado quando você procura por texto com /, ?, * ou # por exemplo; você também pode escrever nele para alterar dinamicamente o padrão de busca),
  • : (armazena o último comando digitado em VimL via Q ou :, somente leitura),
  • + e * (registros da área de transferência do sistema, você pode escrever a eles para definir a área de transferência e ler o conteúdo da área de transferência a partir deles) Veja :registros de ajuda' para a referência completa. Você pode, a qualquer momento, utilizar:registros' para exibir o conteúdo de todos os registros. Sinônimos e abreviações para este comando são :display',:reg' e :di'. No modo Insert ou Command-line, Ctrl-R mais um nome de registo, insere o conteúdo deste registo. Se pretender inseri-los literalmente (sem auto-indentação, sem conversão de caracteres de controlo como0x08para o backspace, etc.), pode utilizar Ctrl-R, Ctrl-O, nome do registo. Veja:ajuda i_CTRL-R` e os parágrafos seguintes para mais referências. Mas você também pode fazer o seguinte (e eu provavelmente esqueci muitos usos para registros).
  • No modo normal, pressione ":p. O último comando que usou no vim é colado no seu buffer.
    Let's decompõe: " é um comando de modo normal que permite selecionar qual registro será utilizado durante a próxima operação de yank, apagar ou colar. So ": seleciona o registro de dois pontos (armazenando o último comando). Depois p é um comando que já conhece, cola o conteúdo do registo. cf. :help ", :help quote_:
  • You're editing a VimL file (por exemplo, seu .vimrc) e gostaria de executar algumas linhas consecutivas agora mesmo: yj:
Comentários (16)

Para colar algo que é a prancheta do sistema você pode simplesmente usar SHIFT - INS.

Funciona no Windows, mas acho que também funciona bem no Linux.

Comentários (7)

Para colar algo da área de transferência do sistema na linha de comando vim ("modo de comando"), use Ctrl+R seguido por +. Para mim, pelo menos no Ubuntu, kbd>Shift+Ins não está a funcionar.

PS: Não sei porquê Ctrl+R seguido de * que é teoricamente o mesmo que Ctrl+R seguido de + doesn't parece funcionar sempre. Pesquisei e descobri o + versão e parece que funciona sempre, pelo menos na minha caixa.

Comentários (1)