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 paste
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 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.
I
distingue entre mayúsculas y minúsculas. La letra minúscula i
es la forma normal de ingresar al modo de inserción. Capital I
lleva 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).
vi
novim
set :paste
).
Si desea copiar y pegar contenidos dentro del mismo archivo , use yank
y 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 p
para 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-gtk
tiene xterm_clipboard
soporte y en Fedora lo xvim
tiene.
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+C
también?
Una vez que ingrese vi, presione i
para 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 I
mueven 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 yank
yput
(use lo siguiente en el modo de comando de vi)
Copiar (YANK)
Para copiar una línea en vi:
yy
o escribaY
Para copiar 2 líneas en vi:
2yy
o 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:
yG
Para copiar todo el texto de la ubicación actual al final de la palabra actual:
yw
Para 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:
p
Para pegar texto en el portapapeles, antes de la ubicación del cursor:
P
Tuve 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+V
en Linux, cmd+V
en Mac). No presione i
para 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 nopaste
método.
Ya ni siquiera necesita instalar las funciones +clipboard
o +xterm_clipboard
vim. 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 p
o 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 .vimrc
será 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)
vimtutor
llevará a la velocidad a donde puede usarlo en aproximadamente 45 minutos.