Cómo copiar contenido pegado en el editor vi

113

Intenté usar Ctrl + V para pegar contenidos en un documento de editor vi, pero Ctrl + V no se interpreta como una pasta.

    
pregunta Rpj 16.02.2013 - 09:13

10 respuestas

136

Primero, asegúrese de estar en modo de edición (presione i ). Luego puedes pegar con Ctrl + Shift + V , si estás en un emulador de terminal como gnome-terminal (o selecciona "Pegar" desde el menú contextual).

También puede escribir :set paste en vim antes de pegar para desactivar la sangría automática, etc. Luego, :set nopaste después de pegar el contenido.

Consulte también esta pregunta en stackoverflow.com para obtener más información.

Si quiere copiar / pegar líneas en vim (en lugar de pegar el contenido del portapapeles), querrá ver el comando yank . Aquí hay una hoja de referencia que podría ayudar.

    
respondido por el Attila O. 16.02.2013 - 09:27
52

Vi (y Vim) funciona de manera muy diferente en comparación con un editor de texto normal como Gedit. También tiene una curva de aprendizaje bastante empinada. Si quieres aprender algunos comandos básicos, comienza con este tutorial interactivo .

Sin embargo, para responder a tu pregunta. El contenido del portapapeles del sistema se puede acceder a través del registro más. Entonces, para pegar algo del portapapeles del sistema puede, desde el modo Normal, presionar: "+ p (No al mismo tiempo, pero uno tras otro).

    
respondido por el Daniel Jonsson 16.02.2013 - 09:34
22
  1. Si desea copiar contenido de relleno dentro del mismo archivo , use yank y paste .

  2. Si desea copiar contenido de pasta en terminales , abra el primer archivo, tirando del texto que desee, abra su segundo archivo dentro de vim (por ejemplo, :tabnew /path/to/second/file ) y presione p para pegarlo.

  3. Si desea copiar contenidos en pasta de vim a un programa externo , debe acceder al portapapeles del sistema. Supongo que usas Ubuntu. La versión de GUI de vim siempre tiene soporte para el portapapeles, sin embargo, si desea usar Vim desde un terminal, deberá verificar el soporte X11-portapapeles.

    Desde la consola, escribe:

    $ vim --version | grep xterm
    

    Si encuentra -xterm_clipboard , tiene dos opciones:

    1) Compile vim usted mismo, con el indicador xterm_clipboard en

    2) Desinstale vim, instale gvim (vim-gtk o vim-gnome) en su lugar. Puede apegarse a no-gui vim llamando a vim desde la terminal, de la misma manera que antes. Esta vez, cuando revises, debes encontrar + xterm_clipborad .

    Ahora, cuando extraes un texto en el registro + dentro de tu editor vim (por ejemplo, "+ yy"), también se copia en el portapapeles del sistema, que puedes recuperar de tu programa externo como editor de gedit, usando Ctrl + V .

  4. Si quiere copiar contenido en pasta de un programa externo en vim , primero copie su texto en el portapapeles del sistema mediante Ctrl + C , luego, en el editor vim insertar modo , haga clic en el botón central del mouse (generalmente la rueda) o presione Ctrl + Shift + V para pegar.

    Estas son 4 copias básicas & amp; pegar condiciones relacionadas con vim. Espero que esto ayude.

respondido por el 47dev47null 20.02.2013 - 06:53
14

Siempre uso Shift + Insertar cuando quiero pegar texto en el terminal, funciona en todos los programas de terminal.

(que es también la razón por la que nunca consigo una computadora portátil donde no puedes presionar Insertar sin presionar una tecla secundaria)

    
respondido por el Magnus Jonsson 17.02.2013 - 17:59
10

Use el botón central del mouse para insertar el texto que ha resaltado en otro lugar.

Es útil cuando no tiene acceso al portapapeles del sistema (por ejemplo, en una sesión SSH remota).

Debe estar en modo de edición / inserción para Vim.

    
respondido por el will-ob 16.02.2013 - 17:09
5

Una vez que ingrese vi, presione i para ingresar al modo de inserción, haga clic con el botón derecho en la terminal, haga clic en pegar.

    
respondido por el GC 13 17.02.2013 - 07:34
3

Instrucciones detalladas para copiar / pegar líneas de texto en vi usando yank y put

(use lo siguiente en el modo de comando de vi)

Copiar (YANK)

Para copiar una línea en vi:

  • En el modo de comando, mueva el cursor a la línea que necesita copiarse y escriba yy o escriba Y

Para copiar 2 líneas en vi:

  • En el modo de comando, mueva el cursor a la primera línea que se debe copiar y escriba 2yy o escriba 2Y

(del mismo modo, se puede copiar cualquier cantidad de líneas)

Para copiar todas las líneas desde la ubicación actual hasta el final del archivo:

  • En el modo de comando, mueva el cursor a la primera línea que se debe copiar y escriba yG

Para copiar todo el texto de la ubicación actual al final de la palabra actual:

  • En el modo de comando, mueva el cursor a la ubicación desde donde se debe copiar el texto y escriba yw

Para copiar todo el texto de la ubicación actual al final de la línea:

  • En el modo de comando, mueva el cursor a la ubicación desde donde se debe copiar el texto y escriba y$

Pegar (PUT)

Para pegar texto en el portapapeles - después de la ubicación del cursor:

  • En el modo de comando, escribe p

Para pegar texto en el portapapeles - antes de la ubicación del cursor:

  • En el modo de comando, escribe P
respondido por el slayernoah 03.11.2013 - 22:43
0

Si eres root : Ctrl + Shift + V

Si es no root : Centre, haga clic con el mouse.

    
respondido por el Eliptical view 01.07.2017 - 08:54
0

Solo quería señalar que al usar Vim a través de Git Bash en Windows, puede usar p o hacer clic con el botón central del mouse sin estar en el modo de inserción. Usando Vim a través de PuTTY , puede hacer clic derecho. Y destacando la copia.

Lo he notado porque llegué aquí sin ver que esto es SE para Ubuntu.

Otros comandos útiles:

  • yy (# de líneas) - yank (copiar)
  • dd (# de líneas) - eliminar
  • p - pegue la línea debajo de la línea actual
  • Shift + p - pegue la línea sobre la línea actual
  • u - deshacer
  • r - rehacer
  • i - insertar modo
  • v - modo visual
respondido por el Tyler Christian 21.07.2017 - 05:27
0

Tuve un problema, porque mi instalación de Vim no admitía el portapapeles :

vim --version | grep clip
-clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      -mouseshape      +startuptime     -xterm_clipboard

Instalé vim-gnome (que admite el portapapeles) y luego lo compruebo nuevamente:

vim --version | grep clipboard
+clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      +mouseshape      +startuptime     +xterm_clipboard

Ahora puedo copiar y pegar usando "+ y y" + p, respectivamente.

    
respondido por el Ashutosh Tripathy 09.06.2018 - 13:35

Lea otras preguntas en las etiquetas