Estoy tratando de copiar y pegar texto de vim. Estoy haciendo v para ingresar al modo visual, luego y una vez que seleccioné mi bloque.
Parece que se copia el texto en el portapapeles de vim, porque p lo pegará. Pero en otro programa (por ejemplo, Chrome), hacer clic derecho-> pegar no pega el texto correcto. ¿Cómo copio texto en el portapapeles correcto?
Respuesta
Lo siguiente funcionará solo si vim --version
indica que tiene la función +xterm_clipboard
. De lo contrario, tendrá que instalar paquetes adicionales o volver a compilar vim con esa característica agregada.
En realidad, hay dos opciones para esto:
"+y
copia en el búfer del portapapeles «habitual» (para que pueda pegar usando Ctrl + V, haga clic con el botón derecho y seleccione «Pegar», etc.), mientras
"*y
copia a la selección X11; puede pegar desde este búfer haciendo clic con el botón central.
Tenga en cuenta que "*
y "+
funciona en ambos sentidos. Entonces, si ha seleccionado algún texto en otra aplicación, puede pegarlo en vim usando "*p
y si ha copiado algún texto (usando, digamos, Ctrl-C), entonces puede pegar en vim usando "+p
.
Comentarios
Responder
Si está utilizando vim> = 7.3 .74, entonces puedes poner esto en tu vimrc:
set clipboard=unnamedplus
Que usará automáticamente el búfer +
(el portapapeles del sistema) de forma predeterminada. Luego, para tirar (copiar), simplemente use el comando y
normal, etc.
Sin embargo, encontré este comportamiento bastante molesto, ya que comandos como d
colocó el texto en el que operan en el búfer predeterminado, lo que significaba que no podía «hacer un dd
rápido y pegar una línea de Internet , por ejemplo.
Comentarios
- + es un registro del portapapeles
- Con respecto a su último punto,
dd
significa » cortar una línea «, de modo que ese sería el comportamiento esperado. En el raro caso en que lo desee para borrar una línea en el olvido,"_dd
hará el truco. - también como señala @HamishDowner en su respuesta: Lo siguiente funcionará solo si
vim --version
indica que tiene la función+xterm_clipboard
. De lo contrario, tendrá que instalar paquetes adicionales o volver a compilar vim con esa función agregada.
Responder
Mantenga presionada la tecla shift y seleccione el texto con el cursor del mouse.
El texto se copiará al portapapeles.
Esto también funciona para pegar desde el portapapeles en vim.
Para ser claros, esto funciona para vim
ejecutándose en una terminal como xterm
.
Comentarios
- @LoopSpace para selecciones de varias líneas, esto también copiará los números de línea cuando
set nu
esté habilitado . Así que probablemente quieras alternar los números de línea con algún atajo o ejecutar el comando:set nonu
antes de cada selección - En MAC, mantén presionada la tecla de opción y selecciona el texto con la cursor del mouse
- ¿No ‘ t funciona para mí usando vim 8.0 + gnome-terminal
- Solución no compatible con términos multipane como tmux.
- Esto no se copia en el portapapeles, esto se copia en el primario .Vea la distinción en el artículo de la Wiki de Clipboard Arch .
Respuesta
Encuentro los comandos estándar "+gP
y "+y
muy difíciles de usar. Así que «he reasignado Ctrl-Y
para tirar en el portapapeles y Ctrl-P
para pegar desde el portapapeles. Agregue esto a .vimrc
nnoremap <C-y> "+y vnoremap <C-y> "+y nnoremap <C-p> "+gP vnoremap <C-p> "+gP
Responder
Cuando revisé mi 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 y luego volví a verificar
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.
Responder
No importa, Encontré la respuesta: está escrita en los menús de vim.
"+y
Muy intuitivo.
Comentarios
- ¿Estás usando
gvim
? - @ nozimica- sí
- Eso ‘ s también está disponible en vim que se ejecuta en un xterm o un emulador de terminal similar bajo X (si vim está compilado con la función
+xterm_clipboard
).
Responder
Solo para agregar una respuesta no específica de vim: puede usar Ctrl+Shift+C
para copiar al portapapeles del sistema en Ubuntu (si la funcionalidad es proporcionada por su emulador de terminal, gnome-terminal para uno lo proporciona). Ctrl+Shift+V
pega en otra ventana de terminal, Ctrl+V
normal pega en una aplicación GUI.
Además, si selecciona el texto en la terminal, luego haga clic en el medio, se pegará desde el portapapeles X11.
Comentarios
- Por alguna razón no ‘ t funciona. Simplemente seleccione con el modo visual, copie con ctrl-shift-C, luego pegue en otra aplicación usando Ctrl-shift-V? El texto no ‘ no se copia para mí.
- @ ripper234: esto no funciona si estás usando gvim. Como dijo crazy2be, esta funcionalidad es de su emulador de terminal.
- @ ripper234: 1) Es una funcionalidad proporcionada por su emulador de terminal (gnome-terminal para uno la proporciona), 2) Ctrl + Shift + V es para pegar en el terminal , las aplicaciones GUI todavía usan Ctrl + V como de costumbre. Yo ‘ editaré la respuesta para que sea más clara.
- si usa shift-control mousedrag – seleccionar texto, copiar y pegar desde una ventana de búfer se vuelve fácil.
Responder
Mantenga presionada la tecla MAYÚS y seleccione el texto del mouse para copiarlo.
Luego pega en otro programa con CTRL + v
.
Funciona en la terminal de mi Ubuntu 16.04. No estoy seguro acerca de gvim
y otros sistemas.
Comentarios
- Eso no funciona.
- respuesta creativa
Respuesta
De forma predeterminada, si instala la versión ligera de vim, no tendrá la +xterm_clipboard
función en (vim --version | grep xterm
), que es necesaria para usar *
y +
se registra fuera de vim.
Para habilitarlo, debe compilar vim usted mismo o instalar una versión de vim que viene prehabilitada. Usé vim-gnome: sudo apt-get install vim-gnome
. Si realiza vim --version | grep xterm
, verá que ahora es +xterm_clipboard
.
Ahora, intente copiar al +
y *
y debería funcionar.
Respuesta
Solo para agregar, si algo funciona, intente cambiar la terminal que envuelve vim (si está usando vim desde la terminal). Descubrí que, por ejemplo, el portapapeles es inaccesible por guake mientras se puede acceder desde gnome-terminal.
Respuesta
Para Ubuntu 14.04 y superior:
-
Simplemente seleccione el texto que desea copiar. Y luego haz clic en el botón de desplazamiento central con el mouse y ve al portapapeles
-
Y haga lo mismo allí también (haga clic en el botón de desplazamiento central con el mouse).
Funciona al 100% en ambos vim
y tail
en Ubuntu.
shift'
luegoshift=
luegoy
(no todas a la vez, una después del otro, excepto los turnos, por supuesto).