我經常在遠端伺服器上工作。有一台伺服器似乎對可用列的數量感到「困惑」(我最好的猜測),但僅限於在 Vim(而不是 bash)中工作時。具體來說,當我打開一個長行文件時,一開始一切看起來都很正常。但當我四處走動時,文字就會變得混亂。遊標看起來好像位於某個單字上,但實際上位於不同的行上。我可以這麼說,因為如果我搜尋遊標所覆蓋的單詞,另一行中的單字會突然出現在我的遊標下方。另外,有些文字似乎換行到下一行(即使我已經“set nowrap”)。而且它的包裹速度比窗戶需要的要快得多。
如果我在命令列上執行“ls”,則文字將延伸到視窗的末尾。所以我認為這是 Vim 特有的。
我檢查過的內容: 1.我檢查了 $TERM 是否與我的本地計算機上的 $TERM 匹配(認為那裡存在一些溝通不暢)。兩者都是“xterm-color”。 2. 我檢查過 Vim 沒有設定一些奇數列(詳細設定列?)。傳回的值與我的視窗寬度相符。 3. 我進行了很多谷歌搜索,但找不到任何相關內容。
我很感激任何幫助。讓我知道如何澄清。
我的本機是 Mac OS X Mountain Lion。遠端伺服器是 Debian (Squeeze)。遠端 Vim 是 7.2。
EDIT-1:我不知道以下內容是否相關,但這裡還有一些症狀:1.如果我在 Vim 中拆分屏幕,它們之間的文件信息行會變得混亂(我認為必須相關) 2.“設定標尺」不起作用
EDIT-2:我剛剛意識到「less」太早換行了文字(遠在視窗結束之前),並且在 Vim 正在嘗試的完全相同的位置。所以我猜它實際上與 bash 有某種關係。與「less」的唯一區別是,線條不會像 Vim 中那樣混亂。
EDIT-3:這現在可能很明顯了,我應該早點檢查其他編輯器,但 emacs 自然有與 Vim 相同的問題。這是bash問題嗎?期限問題?
EDIT-4:我剛剛嘗試使用 iTerm (而不是 Terminal.app)遠端存取相同的文件,並且它運作良好。我不知道該怎麼辦。從某種意義上說,我的問題已經解決了,但如果有人能提供一些線索,我很想了解發生了什麼事。
答案1
我不確定到底發生了什麼或修復了什麼,但如上所述,我使用 iTerm(而不是 Termanal.app)訪問了遠端文件,並且所有內容都按預期格式化。基於此,我認為 Terminal.app 和遠端伺服器之間出現了問題。使用者 romainl 建議我在遠端伺服器上的( )xterm-256color
中明確設定 $TERM ,然後使用 Terminal.app 重試。當我這樣做時,文字格式正確,但語法突出顯示不正確。然後,我從遠端伺服器上刪除了前面提到的行,關閉了會話並重新開始。這次一切都如預期進行。可能只是 Terminal.app 有問題。~/.bashrc
set TERM=xterm-256color
~/.bashrc
再次感謝所有自願提供知識的人。
答案2
我的 .vimrc 中有一個棘手的 :highlight 指令導致了這個問題,導致 vi 無法使用。您可以透過在沒有配置的情況下啟動 vi 來消除/確認這一點。
首先退出 ssh 會話,然後登入以獲得乾淨的 shell,然後:-
vi -u NONE -U NONE -N file.txt