Estaba intentando copiar y pegar algo de vim a otra aplicación y también, de esa aplicación a vim
usando haga clic derecho con el mouse y luego copie y pegue (o con Ctrl + v y Ctrl + c y también probé la versión Command para mac OSX, obviamente). Sin embargo, cuando intento hacerlo, solo copia la primera palabra cuando lo hago desde vim
o cuando copio desde la aplicación a vim
, copia todo, pero inserta pestañas y espacios extraños. Creo que esto sucedió cuando decidí activar el mouse en la terminal. Como en:
:set mouse=a
Tengo esa línea en mi archivo .vimrc
en iTerm (mac os x). Sin embargo, ¿es posible copiar y pegar con otras aplicaciones que no están en vim
para no romper con el mouse=a
activado? ¿O al menos es posible apagar el mouse mientras hago la copia y pegado? Hice :help
mouse, pero los comentarios no fueron útiles para mí. Los pegaría aquí, pero … ¡mi herramienta de copiar y pegar está rota!
Intenté :set mouse!
y :set mouse=a!
pero estos no hicieron nada útil … 🙁
Información adicional de mi entorno:
También estoy usando tmux la mayor parte del tiempo, aunque probé este error / bug sin una sesión tmux, por eso publiqué esto principalmente como una pregunta vim.
Comentarios
Respuesta
mouse=a
evita la capacidad de copiar y pegar fuera de vim con caracteres legibles.
Cambiar mouse=a
a mouse=r
y eso debería solucionar su problema con eso.
Una cosa que me pregunto es, ¿está cambiando el archivo de configuración para su vim con el mouse configurado en mouse = a?
respuesta original ^
Si mouse=r
no le da todas las opciones de copia pasada cámbielo a mouse=v
Ambos mouse=r
y mouse=v
tienen las mismas funciones que necesita, pero dependiendo del vimrc que esté usando, una funcionará mejor que la otra.
Comentarios
- también has intentado resaltar el texto y usar el botón central del mouse para pasar a otro lugar. Que tiende a funcionar mejor cuando intentas con Ctrl + v y Ctrl + c
- No ‘ no sé lo que significa tu pregunta:
one thing I am wondering is, are you changing the config file for your vim with the mouse set to mouse=a?
Quieres decir si tengo:mouse=a
en mi archivo .vimrc? Tengo:mouse=a
en mi archivo .vimrc. - solo
--with-x=yes
? No necesito poner:set --with-x=yes mouse=a
o algo ¿En g? ¿Podría aclarar lo que quiere decir? - Déjeme investigar si necesita combinar
--with-x=yes
conset mouse=a
. Cuando estaba leyendo todo lo que vi fue que estaba solo en el archivo de configuración. Pero podría ser diferente, así que quiero asegurarme de decirte lo correcto que funcionará para ti. - Muchas gracias, esta sugerencia funciona a la perfección con mouse = v
Respuesta
Para usuarios de OS X: Para copiar y pegar con mouse=a
use alt en lugar de Shift para seleccionar el texto. Luego, cmd-c y cmd-v funcionan como se esperaba.
Encontré esta respuesta aquí https://stackoverflow.com/a/4608387/671639 después de muchas búsquedas en Google.
Comentarios
- Tú eres Dios … …: ‘)
- lo único que funcionó para mí, ¡gracias!
- Para mí en OSX funciona » fn » en lugar de » shift » o » alt «.
- La configuración
mouse=v
me funcionó concmd + c
Respuesta
De https://stackoverflow.com/questions/4608161/copy-text-out-of-vim-with-set-mouse-a-enabled/4608387
Presione la tecla «shift» mientras selecciona con el mouse. Esto hará que la selección del mouse se comporte como si mouse = a no estuviera habilitado.
Esto funciona y ha sido verificado por revisores de stack-overflow que lo aceptaron como respuesta 🙂
Respuesta
Tuve el mismo problema: no se podía resaltar con el mouse, por lo que no se podía copiar y pegar desde VIM en una sesión de terminal al documento y navegador de Windows: siguiente y ahora funciona:
: set clipboard=unnamedplus : set mouse=r
Responder
La solución de Bharath , al presionar Shift mientras copia, lo hará, pero copiará más de lo que le gustaría copiar en caso de numeración o comentarios hash.
Una forma de hacerlo incluso con mouse = a es usar el modo visual por presionando V para un solo cursor o Shift + V para resaltar la línea completa, y puede moverse hacia arriba o hacia abajo con flechas y usar Y para copiar o D para cortar y th debería funcionar.
Comentarios
- @Anthon, lo haré, gracias por la aclaración.
- reformulé tu auto- comentario pronunciado para que se parezca más a una respuesta de esa manera, los mods probablemente lo dejarán como está (y es posible que ganes algo de reputación para que puedas comentar). Si el original hubiera sido una corrección menor, comentar hubiera sido más apropiado.
Responder
Consulte: http://vimdoc.sourceforge.net/htmldoc/options.html
Consulte la sección de notas en la parte inferior de la referencia:
Cuándo habilitando el mouse, los botones del mouse aún se pueden usar manteniendo presionada la tecla shift. Esto incluye copiar y pegar con los botones del mouse.
*"mouse"* *E538* "mouse" string (default "", "a" for GUI, MS-DOS and Win32) global {not in Vi} Enable the use of the mouse. Only works for certain terminals (xterm, MS-DOS, Win32 |win32-mouse|, QNX pterm, *BSD console with sysmouse and Linux console with gpm). For using the mouse in the GUI, see |gui-mouse|. The mouse can be enabled for different modes: n Normal mode v Visual mode i Insert mode c Command-line mode h all previous modes when editing a help file a all previous modes r for |hit-enter| and |more-prompt| prompt Normally you would enable the mouse in all four modes with: :set mouse=a When the mouse is not enabled, the GUI will still use the mouse for modeless selection. This doesn"t move the text cursor. See |mouse-using|. Also see |"clipboard"|. Note: When enabling the mouse in a terminal, copy/paste will use the "* register if there is access to an X-server. The xterm handling of the mouse buttons can still be used by keeping the shift key pressed. Also see the "clipboard" option.
Comentarios
- Gracias por contribuir con esa referencia, pero , ¿ responde la pregunta ? Si es así, ¿puede identificar la parte de la cita que lo hace, presentando un resumen de la respuesta real?
Respuesta
En mi Mac, lo que ayudó fueron estas dos cosas:
- : establecer mouse- = a
- fn + clic (en lugar de shift o alt)
Respuesta
Use estas dos líneas a continuación en su ~/.vimrc
para usar todas las características agradables de un gui-mouse
y péguelas en el portapapeles del sistema usando y
(tecla de arrastre) si realmente no necesita ningún búfer de portapapeles adicional :
set mouse=a set clipboard=unnamed
Respuesta
Puede usar y para copiar (yank) y p para pegar incluso con :set mouse=a
configurado en ~/.vimrc
. Utilice v + arrow keys
para resaltar el texto. Para copiar una línea completa rápidamente, use shift + y .
Responder
Como f o la segunda parte de su pregunta donde especificó que al pegar desde otras aplicaciones a vim, agrega pestañas / espacios. Intente agregar esto a su ~ / .vimrc set paste o en vim antes de pegar en modo normal presione «shift» + «:» y escriba «set paste»
Responder
Dos cosas para agregar:
- Tenga en cuenta que muchas veces
set mouse=v
no funcionará como se esperaba dependiendo de la otras directivas que haya establecido antes o después en su archivo.vimrc
, también depende de la terminal desde la que esté ejecutando vim; - Recomendaría mantener
mouse=a
para que tenga todo el modo de mouse habilitado al mismo tiempo y use el truco propuesto por @BHS para resaltar el texto mientras presiona la tecla Shift cuando necesita pegar el texto resaltado con el mouse central button ( Copiar texto fuera de Vim conset mouse=a
habilitado ).
vim
es capaz de pasar a la selección principal sin problemas utilizando el verboy
. No ‘ no sé por qué no ‘ t simplemente usar eso.