我正在尝试设置我的 Linux 控制台 - 没有 X 的裸 TTY 终端。我尝试用 asciinema 捕获这个问题,但有趣的是,它没有出现在那里,所以我用自己的相机捕获了它,这是一个视频链接。
它不仅仅出现在[n]vim
,它是完全随机的,有时也会出现在命令行上。我很确定这与字体无关。以前有人遇到过这种奇怪的行为吗?
编辑:
更多信息:我正在使用 ArchLinux,我认为我安装操作系统的方式有问题。过去,我犯了一个可怕的错误,删除了/usr/
.之后,我决定不需要重新安装文件系统,例如,我只需要重新安装gnu-core
程序和内核pacstrap
。后来就出现了这个问题。
我尝试过reset
,但没有帮助。我尝试了LC_ALL=en_US.UTF-8 nvim test.txt
一下,LC_ALL=C nvim test.txt
看看它是否也与区域设置有关,但也没有帮助。
答案1
可以在行尾的右上角字符中找到线索。 Linux 控制台部分支持 VT100 画线转义(移入/移出)。如果你的语言环境设置不正确(使 vim 混淆哪些字节包含有效字符),例如,如果你将一些二进制文件发送到终端(并将其保留为备用字符集模式......),你可能会遇到类似这样的奇怪行为。
假设终端环境变量设置正确,例如:
export TERM=linux
该reset
命令应该解决备用字符集问题(但对区域设置或终端的实际编码没有帮助)。
答案2
好的,问题出现的原因如下:
这是因为 Neovim 提供了guicursor
选项X11
仅当使用内部支持它的图形终端时才应设置。在裸TERM=linux
tty 中,不支持使用该选项。
当我启动 Vim 而不是 Neovim 时,我成功地解决了这个问题。因为 Vim 没有提供这个选项,所以我没有体验到它。很难隔离的是这样一个事实,即使你退出 Neovim 后它仍然会继续存在,所以这让我认为这是一个普遍的问题。