Como alguém acrescenta à área de transferência no vim?


21

Eu já sei que você pode copiar algo para o registro usando: (além de um comando yank, delete, etc.)

"a

Também entendo que você pode anexar ao registro usando:

"A

Além disso, eu entendo como copiar algo no registro da área de transferência usando:

"+

O que digito para acrescentar ao registro da área de transferência?

Minha versão do vim:

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan 2 2014 19:39:59) Huge version with GTK2 GUI.

Respostas:


10

Não há comando de modo normal para isso, mas você pode simplesmente anexar a outro registro e :leta área de transferência registrar o conteúdo desse registro:

"Ay
"Ay
"Ay
:let @+ = @A

1
Eu colocaria isso no meu arquivo .vimrc?
Jason Basanese

3
Observe que let @+ = @Adescarta o tipo de registro a. A maneira correta para copiar registros é algo como isto: call setreg('+', getreg('a', 1, 1), getregtype('a')).
Sato Katsura

//, isso realmente acrescenta ?
Nathan Basanese

//, por que você lista três "Aycomandos?
Nathan Basanese

Poderia ter sido quatro ou doze. Apenas um exemplo.
Romainl

7

Você pode ligar setreg('+', lines, 'a'), mas até onde eu sei, não há como fazer isso com os comandos do modo normal. Você precisa usar um dos registros de letras maiúsculas para isso.


Apenas usando :let @+ .= 'XXX'parece funcionar?
Martin Tournoij

7
@Carpetsmoker Sim e não. Houve uma discussão recente sobre isso no vim_dev e, aparentemente, você não deveria fazer isso, mesmo que pareça funcionar sob algumas condições. Eu presumo que isso tenha a ver com o conteúdo do registro tendo um tipo (caractere / linha / bloco) e a concatenação de cadeias de caracteres que não faz a contabilidade necessária. De qualquer forma, não faz diferença, ainda não é um comando de modo normal.
Lcd047
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.