Ich arbeite häufig auf Remote-Servern. Es gibt einen Server, der anscheinend „verwirrt“ ist, was die Anzahl der verfügbaren Spalten angeht (meine beste Vermutung), aber nur, wenn ich in Vim (nicht in Bash) arbeite. Insbesondere wenn ich eine Datei mit langen Zeilen öffne, sieht zunächst alles normal aus. Aber wenn ich mich darin bewege, gerät der Text durcheinander. Der Cursor scheint sich über einem bestimmten Wort zu befinden, aber ich befinde mich tatsächlich in einer anderen Zeile. Ich erkenne das daran, dass, wenn ich nach dem Wort suche, das der Cursor abdeckt, plötzlich ein Wort aus einer anderen Zeile unter meinem Cursor erscheint. Außerdem scheint ein Teil des Textes in die nächste Zeile umzubrechen (obwohl ich „nowrap“ eingestellt habe). Und er wird viel früher umgebrochen, als das Fenster es erfordern würde.
Wenn ich „ls“ in der Kommandozeile ausführe, wird der Text bis zum Ende des Fensters erweitert. Ich denke also, dass das Vim-spezifisch ist.
Was ich überprüft habe: 1. Ich habe überprüft, ob $TERM mit dem $TERM auf meinem lokalen Rechner übereinstimmt (ich dachte, da gab es ein Missverständnis). Beide sind „xterm-color“. 2. Ich habe überprüft, dass Vim keine ungerade Anzahl von Spalten festgelegt hat (verbose set columns?). Der zurückgegebene Wert entspricht der Breite meines Fensters. 3. Ich habe viel gegoogelt und konnte nichts Verwandtes finden.
Ich bin für jede Hilfe dankbar. Lassen Sie mich wissen, wie ich das klären kann.
Mein lokaler Rechner ist Mac OS X Mountain Lion. Der Remote-Server ist Debian (Squeeze). Remote Vim ist 7.2.
EDIT-1: Ich weiß nicht, ob die folgenden Symptome damit zusammenhängen, aber hier sind noch ein paar weitere: 1. Wenn ich den Bildschirm in Vim teile, geraten die Dateiinfozeilen dazwischen durcheinander (muss damit zusammenhängen, denke ich) 2. „Lineal festlegen“ funktioniert nicht
EDIT-2: Mir ist gerade aufgefallen, dass „less“ den Text zu früh umbricht (weit vor dem Ende des Fensters) und zwar genau an derselben Stelle, an der Vim es versucht. Ich vermute also, dass es tatsächlich irgendwie mit Bash zusammenhängt. Der einzige Unterschied bei „less“ ist, dass die Zeilen nicht durcheinander geraten wie bei Vim.
EDIT-3: Das ist jetzt wahrscheinlich alles offensichtlich, und ich hätte früher andere Editoren überprüfen sollen, aber natürlich hat Emacs die gleichen Probleme wie Vim. Ist das ein Bash-Problem? Ein Term-Problem?
EDIT-4: Ich habe gerade versucht, mit iTerm (anstelle von Terminal.app) remote auf dieselben Dateien zuzugreifen, und es funktioniert einwandfrei. Ich weiß nicht, was ich davon halten soll. In gewisser Weise ist mein Problem gelöst, aber ich würde gerne verstehen, was los ist, wenn jemand Licht ins Dunkel bringen kann.
Antwort1
Ich bin mir nicht sicher, was genau los war oder was das Problem behoben hat, aber wie oben erwähnt, habe ich mit iTerm (anstelle von Termanal.app) auf die Remote-Datei zugegriffen und alles war wie erwartet formatiert. Auf dieser Grundlage nahm ich an, dass zwischen Terminal.app und dem Remote-Server etwas nicht stimmte. Benutzer romainl schlug vor, dass ich $TERM xterm-256color
in meinem ~/.bashrc
( set TERM=xterm-256color
) auf dem Remote-Server explizit auf setze und es dann erneut mit Terminal.app versuche. Als ich das tat, war der Text korrekt formatiert, allerdings mit falscher Syntaxhervorhebung. Dann habe ich die zuvor erwähnte Zeile aus meinem ~/.bashrc
auf dem Remote-Server entfernt, die Sitzung geschlossen und von vorne begonnen. Diesmal funktionierte alles wie erwartet. Es kann einfach daran gelegen haben, dass Terminal.app fehlerhaft war.
Nochmals vielen Dank an alle, die ihr Wissen freiwillig zur Verfügung gestellt haben.
Antwort2
Ich hatte einen kniffligen :highlight-Befehl in meiner .vimrc, der dieses Problem verursachte, das vi unbrauchbar macht. Sie können dies beseitigen/bestätigen, indem Sie vi ohne Konfiguration starten.
Beenden Sie zuerst die SSH-Sitzung und melden Sie sich dann an, um eine saubere Shell zu erhalten. Dann: -
vi -u NONE -U NONE -N file.txt