Después de habilitar set mouse=a
, el texto copiado dentro de Vim no se pegará fuera de Vim. ¿Alguien sabe de una manera de arreglar esto?
Aquí, seleccionar texto con el mouse activa el modo visual y deshabilita la Copy
opción en el menú emergente:
vim
configuration
mouse
copy-paste
Lyuba
fuente
fuente
+clipboard
ymouse=a
, podrá copiar / pegar desde / a vim sin usar el menú emergente del terminal. Puede verificar siclipboard
está habilitado usandovim --version
.mouse=a
no es una opción de compilación, es algo en vimrc B) Cuando se compiló vim+clipboard
le permite copiar / pegar cuando:set number
está activado , y sin copiar / pegar los números, aunque quizás todavía tenga que hacer algo mapeos C) Uno no tiene que recompilar VIM ellos mismos, puede estar activado en el vim en algunos administradores de paquetes compatibles con cualquier sistema operativo. En osx, vw de brew lo tiene aunque el vim predeterminado de osx no. Mi respuesta menciona este re osx.xsel
funcione para usted, puede seleccionar texto con el editor o con el mouse y presionarctrl+c
para copiar el texto, por cierto es para neovim, github.com/neovim/neovim/issues/7945#issuecomment-361970165Respuestas:
Presione shiftmientras selecciona con el mouse. Esto hará que la selección del mouse se comporte como si
mouse=a
no estuviera habilitada.Nota: este truco también se aplica a "pegar botón central": si desea pegar en el texto vim que se seleccionó afuera, presione shiftmientras hace clic en el botón central. Solo asegúrese de que el modo de inserción esté activado cuando lo haga (es posible que también desee
:set paste
evitar efectos inesperados).OS X (mac): mantenga presionada la tecla alt / option mientras selecciona ( fuente )
fuente
Fn
clave es el camino correcto. Es decir, (conmouse=a
habilitar) seleccionando texto mientras presiona laFn
tecla, luego use CMD + C para copiar y pegar en cualquier lugar que desee.Utilizar " , +, ydespués de hacer una selección visual. De todos modos, no debería usar el comando de copia del terminal, porque eso copia lo que el terminal ve en lugar del contenido real. Esto es lo que hace esto:
+
para la próxima eliminación, extracción o colocación. El registro llamado+
es un registro especial, es el registro del portapapeles X11. (En otros sistemas, usaría en su*
lugar, creo, ver:help clipboard
y:help x11-selection
)Podrías mapearlo así:
Y luego resalte algo con el mouse y presione Control-Cpara copiarlo.
Esta característica solo funciona cuando Vim ha sido compilado con la
+xterm_clipboard
opción. Correvim --version
para averiguar si es así.fuente
"*y
dependiendo del sistema operativo.+clipboard
? ¿Y qué hay+clipboard
dexterm_clipboard
apagado?En lugar de
set mouse=a
usarset mouse=r
en .vimrcfuente
En el uso de OSX en fnlugar de shift.
fuente
option
clave, que esalt
equivalente en el host MacOS. Sin embargo, era una terminal remota en debian9. no funcionó agregando ninguno deset mouse=a
/set mouse=r
in/etc/vim/vimrc
en remoto.En Ubuntu, es posible usar los enlaces X-Term para copiar y pegar dentro de VIM (Ctrl-Shift-C y Ctrl-Shift-V) en el texto que se ha resaltado con la tecla Shift.
fuente
Otra opción de OSX-Mac es desmarcar
View->Allow Mouse Reporting
(o presionar ⌘-R para alternarlo). Esto le permite alternar entre la interacción del mouse y la selección del mouse, lo que podría ser útil al seleccionar y copiar / pegar algunos bits porque no tiene para mantener presionada una tecla modificadora para hacerlo.Nota para Multilínea con números de línea:
Por lo general, tengo habilitados los números de línea, por lo que esto también copiará los números de línea si selecciona varias líneas. Si desea copiar varias líneas sin los números de línea, desactive los números con
:set nonu
y luego puede:set nu
volver a habilitarlos una vez que haya terminado de copiar.fuente
Puede usar
:set mouse&
en la línea de comando vim para habilitar copiar / pegar el texto seleccionado con el mouse. Luego puede simplemente usar el botón central del mouse o shiftinsertpegarlo.fuente
:set number
, resalta los números. Entonces no mucho bien. Así que deshaces el bien hecho porset mouse=a
La configuración de compilación con la que se compiló vim es parte del problema.
vim --version
muestra estos.En OSX, el vim predeterminado tiene
-clipboard
Pero necesitas+clipboard
En osx puedes y aparentemente deberías usar macvim. Puedes hacer
brew cask install macvim
eso+clipboard
.Tendrás dos vims.
ejecutar vim ejecutará macvim 'cos
/usr/local/bin
debería estar antes/usr/bin
en la ruta, aunque puede verificar conwhich vim
.ejecutar vim (para ejecutar macvim), está bien, pero es posible que desee asignar vi a macvim porque, de lo contrario, ejecutar vi permanece en el vim predeterminado. Puede reescribir o eliminar (con rm) y recrear el enlace vi sym, con ln. Y para hacerlo sin un error de "operación no permitida", debe deshabilitar (temporalmente) SIL. Https://apple.stackexchange.com/questions/208478/how-do-i-disable-system-integrity-protection- sip-aka-rootless-on-macos-os-x .
macvim tiene
+clipboard
como se muestra porvim --version
Aquí hay un trabajo
~/.vim/vimrc
con solo las líneas requeridas.La clave líder predeterminada es la barra invertida.
Leí una sugerencia de que uno debería usar la tecla líder ... (ciertamente el control ya tiene muchas teclas en uso, por lo que la sugerencia era no usar el control. No sé si eso también se aplica a la tecla de comando, pero de todos modos).
Con ese mapeo mencionado,
\c
hará lo"+y
que copiará desde el registro conocido como +, al portapapeles. Y\v
pegará desde el registro conocido como +.Así que es una copia / pegar que funciona entre ventanas.
Otro sistema operativo puede requerir en
"*
lugar de"+
fuente
-xterm_clipboard
. Quizás a+xterm_clipboard
sería beneficioso de alguna manera, pero no le importa a esta solución.Si está utilizando la sesión Putty, automáticamente copia la selección. Si hemos usado la opción "set mouse = a" en vim, la selección usando Shift + Mouse arrastrar selecciona el texto automáticamente. Necesito verificar en X-term.
fuente
em ... Sigue presionando Shifty luego haz clic con el botón derecho del mouse
fuente
Accidentalmente le expliqué cómo apagarlo
set mouse=a
, cuando volví a leer la pregunta y descubrí que el OP no quería apagarla en primer lugar. De todos modos, para cualquiera que busque cómo apagar el mouse (set mouse=
) centralmente, dejo una referencia a mi respuesta aquí: https://unix.stackexchange.com/a/506723/194822fuente
Mantener turno mientras copiaba y pegaba con la selección funcionó para mí
fuente
Añadir
set clipboard=unnamed
a tu.vimrc
. Por lo tanto, usará el registro del portapapeles '*' en lugar del registro sin nombre para todas las operaciones de extracción, eliminación, cambio y colocación (tenga en cuenta que no solo afecta al mouse).El comportamiento del registro '*' depende de su plataforma y de cómo
vim
se ha compilado (o si usaneovim
).Si no funciona, puede intentarlo
set clipboard=unnamedplus
, pero esta opción solo tiene sentido en los sistemas X11.fuente
En el modo ESC, cuando establezca mouse = a, seleccione el texto con el mouse. Esto habilitaría el modo visual en vim. Luego puede presionar 'y' para tirar del texto seleccionado y 'p' para pegarlo donde desee. Esto sucede solo dentro de vim.
fuente