![Vim 文本在远程服务器上混乱](https://linux22.com/image/1345170/Vim%20%E6%96%87%E6%9C%AC%E5%9C%A8%E8%BF%9C%E7%A8%8B%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E6%B7%B7%E4%B9%B1.png)
我经常在远程服务器上工作。有一台服务器似乎对可用列的数量“感到困惑”(我猜测是这样的),但只有在使用 Vim(而不是 bash)时才会出现这种情况。具体来说,当我打开一个包含长行的文件时,一开始一切看起来都很正常。但当我四处移动时,文本就会变得混乱。光标看起来好像在某个单词上,但实际上我在另一行上。我之所以能分辨出来,是因为如果我搜索光标覆盖的单词,另一行的单词会突然出现在我的光标下。此外,一些文本似乎会换行到下一行(即使我已“设置不换行”)。而且换行的速度比窗口所需的速度要快得多。
如果我在命令行上执行“ls”,文本将延伸到窗口末尾。所以我认为这是 Vim 特有的。
我检查过的内容:1. 我检查过 $TERM 是否与我本地机器上的 $TERM 匹配(我想是沟通出了问题)。两者都是“xterm-color”。2. 我检查过 Vim 没有设置奇数列(详细设置列?)。返回值与我的窗口宽度匹配。3. 我进行了大量谷歌搜索,但找不到任何相关内容。
我很感激任何帮助。请告诉我如何澄清。
我的本地机器是 Mac OS X Mountain Lion。远程服务器是 Debian (Squeeze)。远程 Vim 是 7.2。
编辑-1:我不知道以下内容是否相关,但这里还有一些症状:1.如果我在 Vim 中分割屏幕,它们之间的文件信息行会混乱(我想一定是相关的)2.“设置标尺”不起作用
编辑 2:我刚刚意识到“less”过早地(在窗口结束之前)换行,并且换行的位置与 Vim 尝试换行的位置完全相同。所以我猜它实际上与 bash 有某种关联。“less”的唯一区别在于,行不会像在 Vim 中那样变得混乱。
编辑-3:现在这一切可能都很明显了,我应该早点检查其他编辑器,但 emacs 自然有与 Vim 相同的问题。这是 bash 的问题吗?还是 Term 的问题?
编辑-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