私はよくリモート サーバーで作業します。1 つのサーバーは、使用可能な列の数について「混乱」しているようです (おそらく)。ただし、これは Vim (bash ではありません) で作業している場合のみです。具体的には、長い行を含むファイルを開くと、最初はすべて正常に見えます。しかし、移動すると、テキストがごちゃごちゃになります。カーソルは特定の単語の上にあるように見えますが、実際には別の行にあります。カーソルが覆っている単語を検索すると、別の行の単語が突然カーソルの下に表示されるので、わかります。また、テキストの一部が次の行に折り返されているように見えます (「set nowrap」を設定しているにもかかわらず)。そして、ウィンドウに必要な時間よりもずっと早く折り返されます。
コマンドラインで「ls」を実行すると、テキストがウィンドウの末尾まで拡張されます。これは Vim 固有の問題だと思います。
確認したこと: 1. $TERM がローカル マシンの $TERM と一致していることを確認しました (何らかの通信ミスがあったと思われます)。両方とも "xterm-color" です。2. Vim が奇数の列 (verbose set columns?) を設定していないことを確認しました。返された値はウィンドウの幅と一致しています。3. グーグルでいろいろ検索しましたが、関連するものは見つかりませんでした。
ご協力いただければ幸いです。どうすれば明確になるか教えてください。
ローカルマシンは Mac OS X Mountain Lion です。リモートサーバーは Debian (Squeeze) です。リモート Vim は 7.2 です。
編集-1: 以下が関連しているかどうかはわかりませんが、さらにいくつかの症状があります: 1. Vim 内で画面を分割すると、それらの間のファイル情報行がごちゃ混ぜになります (関連しているはずです) 2. 「set ruler」が機能しません
編集 2: 「less」がテキストを折り返すのが早すぎる (ウィンドウの終了よりかなり前) こと、そして Vim が折り返そうとしているのとまったく同じ場所であることに気付きました。つまり、これは実際には何らかの形で bash に関連しているのではないかと思います。「less」との唯一の違いは、Vim のように行が乱れないことです。
編集 3: おそらくこれはすべて明らかであり、以前に他のエディターをチェックするべきでしたが、当然のことながら、emacs には Vim と同じ問題があります。これは bash の問題ですか? Term の問題ですか?
編集 4: iTerm (Terminal.app の代わりに) を使用して同じファイルにリモートでアクセスしてみましたが、問題なく動作しています。どうしたらよいかわかりません。ある意味では私の問題は解決しましたが、誰かが解明してくれるなら、何が起こっているのか理解したいです。
答え1
何が起こっていたのか、何がそれを解決したのかは正確にはわかりませんが、前述のように、iTerm (Termanal.app ではなく) を使用してリモート ファイルにアクセスしたところ、すべてが期待どおりにフォーマットされました。これに基づいて、Terminal.app とリモート サーバーの間で何かが間違っていると考えました。ユーザー romainl は、リモートサーバーのxterm-256color
my ~/.bashrc
( set TERM=xterm-256color
) で $TERM を明示的に に設定し、Terminal.app で再試行することを提案しました。それを実行すると、テキストは正しくフォーマットされましたが、構文の強調表示が間違っていました。次に、リモート サーバーの my から前述の行を削除し~/.bashrc
、セッションを閉じて最初からやり直しました。今回はすべてが期待どおりに機能しました。単に Terminal.app にバグがあっただけかもしれません。
知識を提供してくださった皆様に改めて感謝申し上げます。
答え2
私の .vimrc には、この問題を引き起こすトリッキーな :highlight コマンドがあり、vi が使用できなくなりました。設定なしで vi を起動すると、この問題を排除/確認できます。
まず ssh セッションを終了し、ログオンしてクリーンなシェルを取得します。
vi -u NONE -U NONE -N file.txt