it-swarm.com.de

vim Ausschneiden und Einfügen funktioniert in Stretch / Debian 9 nicht

Hier einige VM Server auf Debian 9 aktualisiert.

Wenn Sie jetzt ssh verwenden, 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 witzigere/andere Weise als üblich, aber beim Ausführen von Befehl C/Befehl V oder Kopieren und Einfügen in das entsprechende Menü wird nichts anderes in die Zwischenablage kopiert .

Wir haben auch versucht, die Mausbewegungen mit Shift und anderen Tastaturkombinationen ohne positive Ergebnisse auszuführen.

Dies geschieht unter OS/X, nämlich Sierra und El Capitan, und unter Windows, wobei auch mobaXterm-Terminals verwendet werden.

Die Situation ist auf das Bewusstsein von vim zurückzuführen, eine Maus zu haben.

Nach anderen Fragen in Stack Overflow habe ich /etc/vim/vimrc.local mit set mouse="r" und set mouse="v; es hat nicht gut geklappt.

Zum Schluss set mouse=""in derselben Datei mit mäßigem Erfolg.

Es funktioniert jedoch auch nicht 100% der Zeit gut. Was kann man noch tun?

35
Rui F Ribeiro

Die Lösung besteht darin, die Option mouse=a Auf mouse=r Zu setzen.

Das Problem beim Festlegen von /usr/share/vim/vim80/defaults.vim Wie in der akzeptierten Antwort angegeben, besteht darin, dass es bei jedem Update überschrieben wird. Ich habe lange gesucht und bin auf diesem gelandet: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864074

Die Lösung besteht zunächst darin, lokale .vmrc-Dateien zu verwenden und dort festzulegen. Sie können also eine lokale .vimrc (~/.vimrc) Erstellen. ) für jeden Benutzer und stellen Sie dort Ihre Optionen ein. Oder erstellen Sie eine in /etc/skel, Damit sie automatisch für jeden neuen Benutzer erstellt wird, den Sie erstellen.

Wenn Sie jedoch lokale .vmrc-Dateien verwenden, müssen Sie dort alle Optionen festlegen, denn wenn es einen lokalen .vimrc Gibt, wird der defaults.vim Überhaupt nicht geladen! Und wenn es keinen lokalen .vimrc Gibt, werden alle Ihre Einstellungen von defaults.vim Überschrieben.

Ich wollte eine globale Konfiguration für alle Benutzer, die die Standardoptionen lädt und dann die Standardeinstellungen mit meinen persönlichen Einstellungen hinzufügt oder überschreibt. Zum Glück gibt es eine Option dafür in Debian: Der /etc/vim/vimrc.local wird nach dem /etc/vim/vimrc geladen. Sie können also diese Datei erstellen und die Standardeinstellungen laden lassen, verhindern, dass sie (am Ende) erneut geladen werden, und dann Ihre persönlichen Optionen hinzufügen:

Bitte erstellen Sie die 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, Das im obigen Snippet verwendet wird, einen Wert wie /usr/share/vim/vim80/defaults.vim Hat.)

Wenn Sie auch das "alte Kopier-/Einfügeverhalten" aktivieren möchten, fügen Sie am Ende dieser Datei ebenfalls 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
39
I-GaLaXy-I

Eine Möglichkeit, vim aus dem Mausbewusstsein herauszuschneiden, scheint darin zu bestehen, die Konfiguration der Maus zu kommentieren.

Im /usr/share/vim/vim80/defaults.vim Ich 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 wird "ein Kommentar initiiert).

Durch die Änderung konnten wir problemlos kopieren und wieder einfügen.

Ich stimme den Kommentaren zu, dass dies nicht die ideale Lösung ist, da es tatsächlich in ein Update überschrieben wird, es sei denn, die Konfigurationsdatei ist geschützt (oder umgeleitet). Zu dieser Zeit und aufgrund von Besonderheiten einer Version des Pakets oder der Konfiguration der Server, auf denen ich früher gearbeitet habe, war es die einzige, die funktionierte. Als solches lasse ich diese Antwort hier und sie sollte nur als letzter Ausweg verwendet werden.

26
Rui F Ribeiro

Die Vim-Dokumentation für die Option mouse sagt

Die xterm-Handhabung der Maustasten kann weiterhin verwendet werden, indem die Umschalttaste gedrückt gehalten wird.

11
Stefan

Sie können dies deaktivieren, ohne die Systemdateien zu ändern, indem Sie /etc/vimrc.local Erstellen und Folgendes einfügen:

set mouse=
3
Geoffrey

Viele Leute schlugen vor, :set mouse=a aber ich fand das nur :set mouse=r aktiviert das Kopieren und Einfügen in Vim unter Debian 9. Viel Glück!

2
David Yeager