![vim Ausschneiden und Einfügen funktioniert nicht in Stretch / Debian 9](https://rvso.com/image/97232/vim%20Ausschneiden%20und%20Einf%C3%BCgen%20funktioniert%20nicht%20in%20Stretch%20%2F%20Debian%209.png)
Hier einige VM-Server auf Debian 9 aktualisiert.
Wenn wir jetzt verwenden ssh
, können wir nicht zwischen Remote-Terminals kopieren und einfügen.
Der Cursor scheint die Bewegungen auszuführen und den Text zu markieren, wenn auch auf eine lustigere/andere Art als üblich, aber beim Ausführen von Befehl-C / Befehl-V oder beim Kopieren und Einfügen im jeweiligen Menü wird nichts anderes als in die Zwischenablage kopiert.
Wir haben auch versucht, die Mausbewegungen mit der Umschalttaste und anderen Tastaturkombinationen auszuführen, ohne positive Ergebnisse.
Dies geschieht in OS/X, insbesondere Sierra und El Capitan, und auch in Windows mithilfe von mobaXterm-Terminals.
Die Situation ist darauf zurückzuführen, dass Vim sich bewusst ist, dass er eine Maus hat.
Im Anschluss an andere Fragen in Stack Overflow habe ich /etc/vim/vimrc.local
mit set mouse="r"
und erstellt set mouse="v
; es hat nicht gut funktioniert.
set mouse=""
Schließlich mit mäßigem Erfolg in derselben Datei eingerichtet .
Allerdings funktioniert es auch nicht immer zu 100 %. Was kann man sonst noch tun?
Antwort1
Lösung: Ändern Sie in Ihrem lokalen mouse=a
zu .mouse=r
.vimrc
Das Problem bei dieser Einstellung /usr/share/vim/vim80/defaults.vim
ist, wie in der akzeptierten Antwort angegeben, dass sie bei jedem Update überschrieben wird. Ich habe lange gesucht und bin bei dieser gelandet:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864074
LOKALE LÖSUNG(fehlerhaft):
Die erste Lösung besteht darin, lokale .vimrc-Dateien zu verwenden und sie dort festzulegen.
Sie können also für jeden Benutzer eine lokale .vimrc ( ~/.vimrc
)-Datei erstellen und dort Ihre Optionen festlegen. Oder erstellen Sie eine, /etc/skel
sodass sie automatisch für jeden neuen Benutzer erstellt wird, den Sie anlegen.
Wenn Sie jedoch lokale Dateien verwenden .vimrc
, müssen Sie alle Optionen dort festlegen, denn wenn eine lokale vorhanden ist .vimrc
, defaults.vim
wird die überhaupt nicht geladen! Und wenn keine lokale vorhanden ist, .vimrc
werden alle Ihre Einstellungen aus der überschrieben defaults.vim
.
GLOBALE LÖSUNG(bevorzugt):
Ich wollte eine globale Konfiguration für alle Benutzer, die die Standardoptionen lädt und die Standardeinstellungen dann mit meinen persönlichen Einstellungen ergänzt oder überschreibt.Glücklicherweise gibt es dafür in Debian eine Option: Die /etc/vim/vimrc.local
werden nach den geladen /etc/vim/vimrc
. Sie können also diese Datei erstellen und die Standardeinstellungen laden, um zu verhindern, dass sie (am Ende) erneut geladen werden. Anschließend können Sie Ihre persönlichen Optionen hinzufügen:
Bitte erstellen Sie folgende Datei:/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
(Beachten Sie, dass $VIMRUNTIME
im obigen Snippet ein Wert wie verwendet wird /usr/share/vim/vim80/defaults.vim
.)
Wenn Sie auch das „alte Kopier-/Einfügeverhalten“ aktivieren möchten, fügen Sie am Ende dieser Datei auch die folgenden Zeilen hinzu:
" 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
Antwort2
Eine Möglichkeit, die Mauserkennung bei Vim zu deaktivieren, scheint das Auskommentieren der Mauskonfiguration zu sein.
Ich /usr/share/vim/vim80/defaults.vim
habe die mausspezifische Erkennung wie folgt auskommentiert:
" 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
(in diesen Vim-Konfigurationsdateien leitet „ einen Kommentar ein).
Durch die Änderung ist das Kopieren und Einfügen wieder problemlos möglich.
Ich stimme den Kommentaren zu, dass dies nicht die ideale Lösung ist, da es tatsächlich bei jedem Update überschrieben wird, sofern die Konfigurationsdatei nicht geschützt (oder umgeleitet) ist. Zu diesem Zeitpunkt und aufgrund von Besonderheiten entweder einer Version des Pakets oder der Konfiguration der Server, auf denen ich gearbeitet habe, war es die einzige, die funktionierte. Daher lasse ich diese Antwort hier undEs sollte nur als letzte Lösung verwendet werden.
Antwort3
DerVim-Dokumentation für die mouse
Optionsagt
Die xterm-Behandlung der Maustasten kann weiterhin genutzt werden, indem die Umschalttaste gedrückt gehalten wird.
Antwort4
Viele Leute haben das vorgeschlagen :set mouse=a
, aber ich habe festgestellt, dass :set mouse=r
Kopieren und Einfügen in Vim unter Debian 9 nur möglich ist. Viel Glück!