Dieser macht mich verrückt. Ich verwende XTerm (330) und die neueste Version 8.0.1365 (unter FreeBSD).
Manchmal, nicht immer, ungefähr 1 zu 5, wenn ich eine Datei mit vim öffne, wird eine lustige Zeile über Zeile 1 eingefügt. Nach vielen Kopfkratzern wurde mir klar, dass dies die letzte Zeile ist, die ich in einer vorherigen Sitzung gelöscht habe. Mit anderen Worten, es sieht so aus, als würde ""P
(das "
Register einfügen ) ausgeführt.
Nach einigen weiteren Untersuchungen stellte ich fest, dass dies nur passiert, wenn ich *sunKeyboard: true
die XTerm-Ressourcen festgelegt habe und wenn ich eine gerenderte Schriftart verwende, z -fa "DejaVu Sans Mono:size=24"
. (Ich habe dir doch gesagt, dass es seltsam ist, oder?) Ich habe kein .vimrc
und kein .vim
Verzeichnis, um zu vermeiden, dass mir ein Plugin einen Streich spielt.
Ich kann den Effekt mit den folgenden Befehlen etwas reproduzieren:
#!/bin/sh
rm -f .viminfo; echo inserted >bar; echo x >baz
vim -c d -c wq bar
echo '*sunKeyboard: true' > XTerm
export XAPPLRESDIR=$PWD
for i in 1 2 3 4 5 6; do
xterm -fa "DejaVu Sans Mono:size=24" -e vim baz
done
Dadurch werden die erforderlichen Dateien erstellt, inserted
in das "
Register gestellt und vim einige Male aufgerufen. Wenn Sie x
in der ersten Zeile eine einzeilige Datei mit sehen , ist alles in Ordnung. Geben Sie q
für den nächsten Aufruf ein. Wenn du aber siehst
inserte2
x
Sie haben das Problem reproduziert. Beachten Sie auch, dass das letzte Zeichen in Zeile 1 durch ersetzt wurde 2
. Dies scheint aus dem .
Register zu kommen . Hier sind die Register:
:reg
--- Registers ---
"" inserted^J
"1 inserted^J
". 2
"% baz
- Können Sie das Problem reproduzieren, wenn Sie das Skript mehrmals versuchen? Achten Sie darauf, sich zu bewegen
.vimrc
und.vim
vorübergehend aus dem Weg zu gehen. - Wenn ja, können Sie mir sagen, was hier los ist?
- Irgendwelche Vorschläge, wie man dem auf den Grund geht?
AKTUALISIEREN
Ich bin anscheinend nicht der einzige: https://github.com/vim/vim/issues/2238
:reg
Befehl den ".
Inhalt nicht mehr an .
:echo v:termresponse
?
^[[>19;331;0c
. Die Github-Seite ist ein kurviges kleines Labyrinth, aus dem ich keine Informationen habe. Im unteren Bereich steht "geschlossen", aber ich kann anscheinend keine Patch-Nummer finden, z. B. "in 8.0 behoben. ####". Vielen Dank, dass Sie sich die Zeit für einen Kommentar genommen haben!
set t_RS=
oderset t_SH=
in Ihrem vimrc?