Intenté usar Ctrl+ Vpara pegar contenidos en un documento de editor vi, pero Ctrl+ Vno se interpreta como una pasta.
Intenté usar Ctrl+ Vpara pegar contenidos en un documento de editor vi, pero Ctrl+ Vno se interpreta como una pasta.
Respuestas:
Primero, asegúrese de estar en modo de edición (presione i). Luego puede pegar con Ctrl+ Shift+ V, si está en un emulador de terminal como gnome-terminal(o seleccione "Pegar" en el menú contextual).
También puede escribir :set pastevim antes de pegar para desactivar la sangría automática, etc. Luego, :set nopastedespués de pegar el contenido.
Consulte también esta pregunta en stackoverflow.com para obtener más información.
Si desea copiar / pegar líneas vim(en lugar de pegar el contenido del portapapeles), querrá revisar el comando yank . Aquí hay una hoja de trucos que podría ayudar.
Idistingue entre mayúsculas y minúsculas. La letra minúscula ies la forma normal de ingresar al modo de inserción. Capital Illeva el cursor al comienzo de la línea y luego lo introduce en el modo de inserción.
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 desea aprender algunos comandos básicos, comience con este tutorial interactivo .
Sin embargo, para responder a su pregunta. Se puede acceder al contenido del portapapeles del sistema a través del registro más. Entonces, para pegar algo desde el portapapeles del sistema, puede, desde el modo Normal, presionar: "+p(No al mismo tiempo, sino uno tras otro).
vinovim
set :paste).
Si desea copiar y pegar contenidos dentro del mismo archivo , use yanky paste.
Si desea copiar el contenido de pegado en los terminales , abra el primer archivo, tirando del texto que desea, luego abra su segundo archivo dentro de vim (por ejemplo :tabnew /path/to/second/file) y presione ppara pegarlo.
Si desea copiar y pegar contenidos de vim a un programa externo , debe acceder al portapapeles del sistema. Supongo que usas Ubuntu. La versión GUI de vim siempre tiene soporte para portapapeles, sin embargo, si desea usar Vim desde un terminal, deberá verificar el soporte para portapapeles X11.
Desde la consola, escriba:
$ vim --version | grep xterm
Si encuentra -xterm_clipboard , tiene dos opciones:
1) Compile vim usted mismo, con la bandera 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 lo hizo antes. Esta vez, cuando verificas, deberías encontrar + xterm_clipborad .
Ahora, cuando tira algo de texto en el registro + dentro de su editor vim (por ejemplo, "+ aa), también se copia en el portapapeles del sistema que puede recuperar de su programa externo como editor gedit, usando Ctrl+ V.
Si desea copiar y pegar contenidos de un programa externo en vim , primero copie el texto en el portapapeles del sistema a través de Ctrl+ C, luego en el modo de inserción del editor de vim , haga clic en el botón central del mouse (generalmente la rueda) o presione Ctrl+ Shift+ Vpara pegar.
Estas son 4 condiciones básicas de copiar y pegar relacionadas con vim. Espero que esto ayude.
vim-gtktiene xterm_clipboardsoporte y en Fedora lo xvimtiene.
Siempre uso Shift+ Insertcuando quiero pegar texto en el terminal, funciona en todos los programas de terminal.
(Esa es también la razón por la que nunca obtengo una computadora portátil donde no se puede presionar Insertsin presionar una tecla secundaria)
Vi/ Vim! = terminal;)
Ctrl+A, Ctrl+Ctambién?
Una vez que ingrese vi, presione ipara ingresar al modo de inserción, haga clic derecho en la terminal, haga clic en pegar.
i. ¿Qué hace mayúscula I?
i. Las mayúsculas Imueven el cursor al comienzo de la línea antes de ingresar al modo de inserción, que no es necesario aquí.
Instrucciones detalladas para copiar / pegar líneas de texto en vi usando yankyput
(use lo siguiente en el modo de comando de vi)
Copiar (YANK)
Para copiar una línea en vi:
yyo escribaYPara copiar 2 líneas en vi:
2yyo escriba2Y(Del mismo modo, se puede copiar cualquier número de líneas)
Para copiar todas las líneas desde la ubicación actual hasta el final del archivo:
yGPara copiar todo el texto de la ubicación actual al final de la palabra actual:
ywPara copiar todo el texto de la ubicación actual al final de la línea:
y$Pegar (PONER)
Para pegar texto en el portapapeles, después de la ubicación del cursor:
pPara pegar texto en el portapapeles, antes de la ubicación del cursor:
PTuve un problema porque mi instalación de Vim no era compatible con 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 verifiqué 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.
Con Vim 8+ en Linux o Mac, ahora puede simplemente usar la pasta nativa del sistema operativo ( ctrl+shift+Ven Linux, cmd+Ven Mac). No presione ipara el Modo Insertar.
Pegará el contenido del portapapeles de su sistema operativo, conservando los espacios y las pestañas sin agregar autoindenting. Es equivalente a la antigua :set paste, i, ctrl+shift+V, esc, :set nopastemétodo.
Ya ni siquiera necesita instalar las funciones +clipboardo +xterm_clipboardvim. Esta característica se llama "pasta entre corchetes". Para obtener más detalles, consulte https://stackoverflow.com/questions/2514445/turning-off-auto-indent-when-pasting-text-into-vim/56781763#56781763
Si eres root : Ctrl+ Shift+V
Si no es root : haga clic en el centro del mouse.
Solo quería señalar que usando Vim a través de Git Bash en Windows, puede usar po hacer clic con el botón central del mouse sin estar en modo de inserción. Usando Vim a través de PuTTY , puede hacer clic derecho. Y destacando hace la copia.
He notado esto porque llegué aquí sin ver que esto es SE para Ubuntu.
Otros comandos útiles:
Puede usar Ctrl+ Shift+ Vpara pegar en la versión de terminal vim, pero para la versión de GUI vim Neovim-Qt, pegar texto desde el portapapeles del sistema con Ctrl+ Shift+ Vsimplemente no funcionará. Tienes que acceder al portapapeles "+o "*en el editor vim.
Agregar nuevas combinaciones de teclas .vimrcserá simplemente los comandos copiar / pegar:
" paste from system clipboard, align indentation with surroundings
noremap <Leader>p "*]p:set nopaste<CR>
" copy a sentence into system clipboard
noremap <Leader>y "+y)
vimtutorllevará a la velocidad a donde puede usarlo en aproximadamente 45 minutos.