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.
Jason Basanese
fonte

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
romainl
fonte
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.

lcd047
fonte
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