c vim 通过 mobaxterm 使用时文件的第一个字符乱码

c vim 通过 mobaxterm 使用时文件的第一个字符乱码

这件事让我发疯,我找不到解决办法......

我正在使用 MobaXterm 通过 ssh 登录 FreeBSD 机器。每次我用 vim 打开文本文件时,它都会用“g”替换文件的第一个字符。这不仅仅是显示乱码,当我尝试退出 vim 时,它会警告我文件已被更改,并且在写入文件后,“g”当然还在里面。

我唯一能弄清楚的是,这种情况仅当 TERM 设置为 xterm 变体(xterm、xterm-color 等)时才会发生。使用其他编辑器(nano 或 vi)时不会发生这种情况。

有人能建议解决方案或指出正确的方向我应该检查或重新配置什么吗?

更新:

:scriptnames 的输出

  1: /usr/local/etc/vim/vimrc
  2: /usr/local/share/vim/vim74/syntax/syntax.vim
  3: /usr/local/share/vim/vim74/syntax/synload.vim
  4: /usr/local/share/vim/vim74/syntax/syncolor.vim
  5: /usr/local/share/vim/vim74/filetype.vim
  6: /usr/local/share/vim/vim74/plugin/getscriptPlugin.vim
  7: /usr/local/share/vim/vim74/plugin/gzip.vim
  8: /usr/local/share/vim/vim74/plugin/logiPat.vim
  9: /usr/local/share/vim/vim74/plugin/matchparen.vim
 10: /usr/local/share/vim/vim74/plugin/netrwPlugin.vim
 11: /usr/local/share/vim/vim74/plugin/rrhelper.vim
 12: /usr/local/share/vim/vim74/plugin/spellfile.vim
 13: /usr/local/share/vim/vim74/plugin/tarPlugin.vim
 14: /usr/local/share/vim/vim74/plugin/tohtml.vim
 15: /usr/local/share/vim/vim74/plugin/vimballPlugin.vim
 16: /usr/local/share/vim/vim74/plugin/zipPlugin.vim

我的主目录中没有 .vimrc 文件,/usr/local/etc/vim 中的文件是 vim 包附带的未修改的默认文件:

if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
        set fileencodings=ucs-bom,utf-8,latin1
endif

let g:is_posix = 1
set nocompatible
set bs=indent,eol,start
set history=50
set ruler

if &t_Co > 2 || has("gui_running")
        syntax on
        set hlsearch
endif

if has("autocmd")
        augroup freebsd
        autocmd!
        if $PORTSDIR != ""
                autocmd BufNewFile $PORTSDIR/*/*/Makefile 0r $PORTSDIR/Templates/Makefile
        else
                autocmd BufNewFile /usr/ports/*/*/Makefile 0r /usr/ports/Templates/Makefile
        endif
endif

打开文本或二进制文件时会发生这种情况。但该问题似乎与 MobaXterm 有关;只有当我使用 MobaXterm 连接时才会发生这种情况。当我使用 putty 或物理控制台时,Vim 可以正常工作($TERM 在两种情况下都是 xterm)。

答案1

我相信这是一个错误,最近已经修复。请更新您的 Vim。

哦,对于 mobaxterm 来说,这似乎也是一个mobaxterm 的 bug

答案2

将其添加到您的~/.vimrc文件中:

set background=dark

答案3

我遇到了同样的问题。我没有解决方案。但我有一个避免这种情况的变通方法。

您可以安装“tmux”并在 tmux 上使用 vim,“g”问题就会消失。

相关内容