it-swarm-es.tech

¿Cómo hacer cortar / copiar / pegar en GVim en Ubuntu funciona con Ctrl + X, Ctrl + C, Ctrl + V?

Por defecto, los accesos directos de cortar/copiar/pegar en GVim en Ubuntu son:

 Cortar "+ x 
 Copiar" + y 
 Pegar "+ gP 

Me gustaría usar combinaciones de teclas de control en GVim, como uso en Firefox y otras aplicaciones de gnome. ¿Cómo configuro GVim para que funcione como otras aplicaciones Gnome?

52
pcapademic

Agregue las siguientes líneas a su _vimrc o .vimrc

source $VIMRUNTIME/mswin.vim
behave mswin

Pero cuidado, el modo visual es entonces CTRL-Q en lugar de CTRL-V.

Para una visión general de lo que mswin.vim ve el mswin.vim código fuente . Se comenta muy bien y si algún comando no está claro, puede buscarlo fácilmente en la ayuda de vim.

Aquí está una descripción rápida compilada de la fuente:

  • las teclas de retroceso y cursor se ajustan a la línea anterior/siguiente
  • CTRL-X y SHIFT-Del están cortadas
  • CTRL-C y CTRL-Insert son copia
  • CTRL-V y SHIFT-Insert son pegar
  • Use CTRL-Q para hacer lo que CTRL-V solía hacer
  • Utilice CTRL-S para guardar, también en modo Insertar
  • CTRL-Z es Deshacer; aunque no en cmdline
  • CTRL-Y es Rehacer (aunque no se repite); aunque no en cmdline
  • Alt-Space es el menú del sistema
  • CTRL-A es Seleccionar todo
  • CTRL-Tab es la ventana siguiente
  • CTRL-F4 es Cerrar ventana

A petición de Nippysaurus: puse lo siguiente en mi .gvimrc para mostrar Ctrl-V además de Pegar en el menú:

unmenu! Edit.Paste
aunmenu Edit.Paste
nnoremenu 20.360 &Edit.&Paste<Tab>Ctrl-V        "+gP
cnoremenu    &Edit.&Paste<Tab>Ctrl-V        <C-R>+

No lo probé a fondo, solo una comprobación rápida si hizo lo que esperaba. Funciona para mí, espero que funcione para ti ;-)

50
Ludwig Weinzierl

Si desea que Cortar/Copiar/Pegar funcione con las teclas de acceso rápido "estándar", pero no desea cambiar ninguna de las otras opciones de configuración en gvim, intente agregar lo siguiente a ~/.vimrc.

vmap <C-c> "+yi
vmap <C-x> "+c
vmap <C-v> c<ESC>"+p
imap <C-v> <C-r><C-o>+

Pegar solo funciona en el modo Visual e Insertar, por lo que no tiene que preocuparse por el conflicto con Ctrl-V y el Modo Visual por bloques. Esto no es un problema, porque Copiar y Cortar te pone en modo de inserción, por lo que puedes pegar inmediatamente después. Si lo prueba, encontrará que se siente completamente natural.

Se me ocurrió esta configuración después de varias iteraciones de ajustes, y creo que ahora es "perfecta". Si está un poco insatisfecho con su configuración actual de copiar/pegar, pruébelo y apuesto a que le encantará.

44
Cogan

Si desea mantener el comportamiento normal de vim pero también permitir un uso menos engorroso del portapapeles del sistema, consulte Acceso al portapapeles del sistema . Si desea que gvim use el portapapeles del sistema como su búfer predeterminado (por lo que cualquier comando x, y, p, etc. usa el portapapeles), a continuación, agregue la siguiente línea a su vimrc:

set clipboard=unnamed

Personalmente uso los buffers mucho más dentro de vim que entre vim y el sistema; así que prefiero tener un atajo un poco más engorroso que tener el portapapeles de mi sistema constantemente obstruido. Pero es bueno que haya una opción para aquellos que lo prefieran.

9
jtb

Creo que puede agregar esto con el comando: imap (lo probé solo con Ctrl + X en Windows, que funcionó, al presionar ctrl + c parece que se cancela el comando, así que puede que tenga que hacerlo en vimrc).

:imap <C-X> "+x
:imap <C-C> "+y 
:imap <C-V> "+gP

Si lo agrega a su ~/.vimrc, solo necesita quitar el: delante de imap.

imap solo agrega los enlaces en el modo de inserción, por lo que es posible que desee cambiarlo para simplemente mapear o algo más. Mire en :help mapmode para obtener más información sobre cómo volver a asignar y desasignar cosas.

¡Buena suerte!

2
Peter Thorin