2010-12-09 8 views

Respuesta

11

O si se utiliza el sistema de registro, puede pegar sin estar en modo de inserción:

"*p 

Esto pegará el portapapeles del sistema en el punto del cursor. No se necesita modo de inserción.

+1

Sin embargo, esto no funcionará en SSH (pegará desde el portapapeles del sistema al que tiene SSHed, no a su sistema). – Kat

0

Ctrl-V/Apple-V? Solo asegúrese de estar en modo de inserción en vi (i)

+1

No siempre funciona debido a la sangría automática (y parece haber otros problemas, citas automáticas o algo así). Si pego un bloque grande en mi '.vimrc' mientras estoy en el modo de inserción, termino con una gran cantidad de sangría y comentarios aleatorios agregados. – Kat

0

Usted es la tecla de método abreviado de pegar mientras está en el modo Insertar o si su fuente es otro archivo, puede escribir: r y se pegará a la actual ubicación de su cursor

1

Si está usando gvim, presione CTRL-R y luego * o + en el modo de inserción. Pegará el último texto copiado.

11

Una cosa a tener en cuenta, a veces Vim auto-indents texto. Esto está muy bien, pero a veces confunde el texto que pega en un documento.

Si sus hendiduras son mal quitar el texto pegado, tipo :set paste, pegue el texto en de nuevo, y cuando haya terminado tipo :set nopaste.

0

La manera más fácil en * nix es seleccionándolo con el mouse y pegándolo en vim con un clic medio, después de haber puesto vi en modo Insertar.

Clic medio podría ser una clave tanto de izquierda a derecha si estás usando un touchpad

0

La forma más rápida es para pegarlo usando claves cualquier pasta de sus usos del sistema (por ejemplo ⌘-v para Macs, Ctrl-V para ventanas, etc.) en modo inserción. Algunos terminales requieren que use Shift-Ctrl-V. Sin embargo, puede pegar en la línea de comandos cómo debe pegar en vim. Sin embargo, esto puede causar algunos problemas con la sangría, que es donde entra :set paste. La manera más rápida de entrar y salir de esto es establecer un pegado de bloqueo (vea :help pastetoggle). Por ejemplo, yo uso

set pastetoggle=<leader>p 

La razón para utilizar un pastetoggle en lugar de una asignación es porque si se establece un modo de asignación de inserción va a leer literalmente en el modo de pasta. Por lo tanto, si :set paste, entra en el modo de inserción y escribe imap, la asignación no se completará, sino que se insertarán los caracteres literales. Con pastetoggle puede evitarlo ya que es una función integrada.

Como han dicho otros si está en modo insertar, también puede usar <C-r>*, pero ¿por qué? Su flujo de pegado normal es probablemente mejor. Sin embargo, comprender el registro * y <C-r> es una habilidad importante. Puede leer más sobre ellos en :help registers y :help i_CTRL-R. También puede usar "*p, pero si es más rápido escribiendo eso, me queda impresionado. Por supuesto, podrías asignar eso a otra cosa, pero de nuevo ... ¿por qué? Debe acostumbrarse a entrar rápidamente en el modo de inserción con i, I, a, A, o, O, s, S, c, and C para que pueda ser más preciso.

15
  1. Entre en el modo de inserción (Tipo i)
  2. Tipo: ctrl - cambio - v
+0

Esto funciona con Raspberry Pi. El "* p solo se pegó desde el registro más reciente de vim. – rball

7

La verdadera respuesta:

  1. :set paste

  2. el modo insertar: HIT i

  3. Pegar: Comando +v o control + v

  4. :set nopaste

+0

Estoy seguro de que puede averiguar cómo usar otra clave para pegar en vim –

+0

Falta un paso: después del paso 3, presione Esc para salir del modo Insertar. – boot13

2

La manera más fácil es simplemente copiar el texto y simplemente hacer clic donde desea pegarlo en VIM en modo INSERT.

Cuestiones relacionadas