2011-06-10 13 views
8

Sé cómo copiar al portapapeles, pero ¿cómo puedo agregarlo al portapapeles?VIM: anexar al portapapeles

p.e. Lo uso en mi código
let @+ = my_expression

pero eso sobrescribe el portapapeles.

Sé que puedo usar el registro a-z para anexar a
p.e. let @B = my_expression
añádelo para registrar b

pero ¿qué hacer cuando quiero adjuntarlo al portapapeles?

Respuesta

13

uso:

let @+ = @+ . my_expression 

o más corto:

let @+ .= my_expression 

Referencia: :help :let.=

+0

tan simple! :) ¡Muchas gracias! – Reman

8

Si no estás macro-ción, es probable que vale la pena mirar registers también. :help registers fue alucinante.

En una cáscara de nuez simplificada, hay 26 "portapapeles personalizables" adicionales, llamados registros, donde puede almacenar texto, comenzando con a y pasando por z. Para agregar texto a un registro en el modo de comando, toque ", nombrando el registro (digamos f) y luego escribiendo el "movimiento" en el que desea seleccionar el texto.

Las copias con un registro (cursor en [T]):

Estado del archivo inicial

This is my first line. 
[T]his is my second line. 
This is my third line. 

Tipo "fyy en el modo de comando para llenar el registro con una línea (yy). Escriba p (* vea debajo) para pegarlo inmediatamente. Por lo tanto, el resultado de escribir "fyyp es exactamente lo mismo que haber escrito yyp con el portapapeles predeterminado.

Resultado

This is my first line. 
This is my second line. 
[T]his is my second line. 
This is my third line. 

Al añadir a un registro:

utilizan la letra capital para anexar a su registro existente. En el ejemplo anterior después de pegar, presione j para pasar a una línea y luego "Fyy. Luego escriba p para pegar. Tiene anexado "Esta es mi tercera línea". a los contenidos de f.

Resultado

This is my first line. 
This is my second line. 
This is my second line. 
This is my third line. 
This is my second line. 
[T]his is my third line. 

(Usando una minúscula f habría limpiado contenidos f 's y terminó con sólo la celebración de 'Esta es mi tercera línea.')

no he Encontré una forma de anexar al registro predeterminado, por lo que está atrapado con unas pocas teclas adicionales que acceden a los registros "nombrados", pero con un poco de trabajo, es una manera fácil de agregar a "portapapeles" sobre la marcha.

  • ¿Por qué p pasta de lo que está en registro f inmediatamente después de que un tirón en f? Debido a que su registro predeterminado contiene la última selección, y aparentemente no contiene lo que agregó al f, sino que extrae todo lo que está en f cuando lo agrega. Podría ser más expositivo decir que, en el primer caso, "el resultado de escribir "fyy"fp es exactamente lo mismo que haber escrito yyp con el portapapeles predeterminado".
+0

Aunque ahora [He aprendido] (http://vim.1045645.n5.nabble.com/how-to-copy-non-continuous-matched-lines-into-clipboard-tp1164018p1164021.html) * '@ + 'es el registro del portapapeles, por las dudas. * – ruffin

+0

¿Y el downvote es para? Comente, por lo que puedo corregir/integrar/abordar su crítica implícita. – ruffin