Seltsames Rendering-Artefakt in vim (Terminal, nicht MacVim)


7

Unter Mac OS X mit Terminal.app oder iTerm2 gibt es ein seltsames Artefakt bei der Zeichenwiedergabe, das ich nur schwer erklären und noch schwerer verstehen kann. Ich beginne mit einem Video meines Bildschirms, damit Sie es in Aktion sehen und sehen können:

Seltsames Terminal-Vim-Rendering

Aus dem Video können Sie einige Möglichkeiten erkennen, wie seltsam es ist. Wenn ich beispielsweise im Einfügemodus auf einen Buchstaben treffe, wird das Zeichen doppelt gedruckt. Wenn ich in den normalen Modus gehe, bleibt das Artefakt erhalten. Wenn ich wieder in den Einfügemodus gehe, werden durch Drücken der Rücktaste die Zeichen links an die Position unter dem Cursor kopiert.

Dies ist in OS X Lion und Mountain Lion sowohl unter Terminal.app als auch unter iTerm 2 geschehen. Dies ist unter MacVim niemals der Fall.

Außerdem verwende ich GNU / Linux auf meinem anderen Computer und habe dies noch nie erlebt. Ich bin mir ziemlich sicher, dass es sich ausschließlich um ein Mac OS X-Problem handelt, aber ich weiß nicht, wie ich es beheben soll. Seit einiger Zeit arbeite ich die meiste Zeit mit MacVim daran, aber ich arbeite lieber in einem Terminal.

Weiß jemand, was hier passiert, und wenn ja, wie kann ich das beheben?

BEARBEITEN: Ich habe versucht, die ausführbare Datei von macvim Vim zu verwenden, und es werden immer noch seltsame Artefakte angezeigt, die sich jedoch auf der linken Seite des Bildschirms befinden. Hier ein Beispiel:

Geben Sie hier die Bildbeschreibung ein


Welche Kodierung verwenden Sie? In Vim und im Terminal? Was ist Ihr $TERM? Welche Schriftart verwenden Sie? Kommt es vor, wenn Sie nanoeinen anderen CLI-Texteditor verwenden? Was ist die Version von Vim? Hast du es kompiliert? Und Ihr animiertes GIF scheint nicht eingebettet zu funktionieren.
Romainl

Codierung: UTF-8, $ TERM = xterm-256color (im Terminal) und dumm (in MacVim). Die Schriftart ist Inconsolata, Größe 18. Über Nano konnte ich das gleiche Problem in Nano nicht reproduzieren. Beide Versionen von vim sind 7.3. Und ich habe MacVim mit dem Homebrew-Paketmanager kompiliert, aber Console Vim ist der Systemstandard. Das habe ich nicht kompiliert.
Tlehman

Ich denke, dass Homebrew das System Vim überschreibt. Sind Sie sicher, dass Sie die Standard-Vim und nicht die ausführbare CLI-Datei von MacVim verwenden?
Romainl

Ich bin sicher, dass ich das Standard-Vim verwende und nicht das Homebrew-Vim. Zum einen which vimgibt /usr/bin/vim. ls -l /usr/bin/vimZeigt auch, dass es kein Alias ​​für etwas ist, in /usr/local/bindem Homebrew verwendet. Und schließlich liegt das Änderungsdatum in der /usr/bin/vimDatei vor der Installation von Homebrew, sodass dies definitiv die Systemvorgabe ist.
Tlehman

Ok, sehen Sie dasselbe Verhalten, wenn Sie die ausführbare Macvim-Datei im Terminal verwenden?
Romainl

Antworten:


0

Gesamtaufnahme im Dunkeln: Haben Sie die folgende Zeile in Ihrem ~ / .vimrc?

set list listchars=tab:\ \ ,trail:

Versuchen Sie, es mit einem "am Anfang der Zeile zu kommentieren und vim neu zu starten.

Ich habe es aus dem Dotfiles-Repo von jemandem aufgenommen und hatte keine Gelegenheit herauszufinden, warum es Probleme verursacht.

Ich verwende iTerm2. Mein $TERMist xterm. Ich hoffe, das hilft.


0

Dies kann damit zusammenhängen, dass der Git-Zweig mithilfe der folgenden Funktion in ~ / .vimrc in die Statuszeile eingefügt wird :

system("git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* //'")`
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.