![vim cortar y pegar no funciona en Stretch/Debian 9](https://rvso.com/image/97232/vim%20cortar%20y%20pegar%20no%20funciona%20en%20Stretch%2FDebian%209.png)
Se actualizaron aquí algunos servidores VM a Debian 9.
Ahora, cuando usamos ssh
, no podemos copiar y pegar entre terminales remotos.
El cursor parece estar haciendo los movimientos y marcando el texto, aunque de una manera más divertida/diferente a la habitual, pero no se copia nada más que en el portapapeles al hacer comando-C/comando-V o copiar y pegar en el menú respectivo. .
También intentamos hacer los movimientos del mouse con Shift y otras combinaciones de teclado, sin resultados positivos.
Esto está sucediendo en OS/X, concretamente Sierra y El Capitan, y en Windows, utilizando también terminales mobaXterm.
La situación se debe a la conciencia de vim de tener un mouse.
Siguiendo otras preguntas en Stack Overflow, creé /etc/vim/vimrc.local
con set mouse="r"
y set mouse="v
; no funcionó bien.
Finalmente lo instalé set mouse=""
en el mismo archivo, con cierto éxito moderado.
Sin embargo, tampoco funciona bien el 100% del tiempo. Qué más se puede hacer?
Respuesta1
Solución: cambie mouse=a
a mouse=r
en su local .vimrc
.
El problema al configurar esto /usr/share/vim/vim80/defaults.vim
como dice la respuesta aceptada es que se sobrescribirá en cada actualización. Busqué durante mucho tiempo y terminé en este:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864074
SOLUCIÓN LOCAL(defectuoso):
La primera solución es utilizar archivos .vimrc locales y configurarlos allí.
Por lo tanto, podría crear un .vimrc ( ~/.vimrc
) local para cada usuario y configurar sus opciones allí. O cree uno /etc/skel
para que se cree automáticamente para cada nuevo usuario que cree.
Pero cuando usas .vimrc
archivos locales, tienes que configurar todas las opciones allí, porque si hay un archivo local .vimrc
, ¡ defaults.vim
no se carga en absoluto! Y si no hay ningún archivo local, .vimrc
se sobrescriben todas sus configuraciones defaults.vim
.
SOLUCIÓN GLOBAL(preferible):
Quería una configuración global para todos los usuarios, que cargue las opciones predeterminadas y luego agregue o sobrescriba las predeterminadas con mi configuración personal.Afortunadamente, existe una opción para esto en Debian: se /etc/vim/vimrc.local
cargará después del archivo /etc/vim/vimrc
. Entonces puedes crear este archivo y cargar los valores predeterminados, evitando que se carguen nuevamente (al final) y luego agregar tus opciones personales:
Por favor cree el siguiente archivo:/etc/vim/vimrc.local
" This file loads the default vim options at the beginning and prevents
" that they are being loaded again later. All other options that will be set,
" are added, or overwrite the default settings. Add as many options as you
" whish at the end of this file.
" Load the defaults
source $VIMRUNTIME/defaults.vim
" Prevent the defaults from being loaded again later, if the user doesn't
" have a local vimrc (~/.vimrc)
let skip_defaults_vim = 1
" Set more options (overwrites settings from /usr/share/vim/vim80/defaults.vim)
" Add as many options as you whish
" Set the mouse mode to 'r'
if has('mouse')
set mouse=r
endif
(Tenga en cuenta que el $VIMRUNTIME
fragmento utilizado en el fragmento anterior tiene un valor como /usr/share/vim/vim80/defaults.vim
).
Si también desea habilitar el "comportamiento antiguo de copiar/pegar", agregue también las siguientes líneas al final de ese archivo:
" Toggle paste/nopaste automatically when copy/paste with right click in insert mode:
let &t_SI .= "\<Esc>[?2004h"
let &t_EI .= "\<Esc>[?2004l"
inoremap <special> <expr> <Esc>[200~ XTermPasteBegin()
function! XTermPasteBegin()
set pastetoggle=<Esc>[201~
set paste
return ""
endfunction
Respuesta2
Una forma de eliminar vim del conocimiento del mouse parece ser comentar la configuración del mouse.
En /usr/share/vim/vim80/defaults.vim
comenté la detección específica del mouse como en:
" In many terminal emulators the mouse works just fine. By enabling it you
" can position the cursor, Visually select and scroll with the mouse.
"if has('mouse')
" set mouse=r
"endif
(en esos archivos de configuración de vim, " está iniciando un comentario).
El cambio nos ha permitido volver a copiar y pegar sin problemas.
Estoy de acuerdo con los comentarios: esta no es la solución ideal, debido a que, de hecho, se sobrescribe en cualquier actualización a menos que el archivo de configuración esté protegido (o desviado). En su momento, y por particularidades ya sea de una versión del paquete o de la configuración de los servidores donde trabajaba, era el único que funcionaba. Como tal, dejo esta respuesta aquí, ysólo debe utilizarse como solución de último recurso.
Respuesta3
ElDocumentación de Vim para la mouse
opción.dice
El manejo xterm de los botones del mouse aún se puede utilizar manteniendo presionada la tecla Mayús.
Respuesta4
Mucha gente lo sugirió :set mouse=a
, pero descubrí que solo :set mouse=r
permite copiar y pegar en Vim en Debian 9. ¡Buena suerte!