You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自行编译Vim9后出现[esc][?4m字符问题,求解决方法

解决Vim9编译后新缓冲区出现[esc][?4m控制字符的问题

[esc][?4m是终端DECCOLM控制序列,用于切换80/132列显示模式,出现乱码是因为终端不识别该序列,或Vim的终端初始化配置有误。以下是针对性解决步骤:

  • 检查终端环境变量
    执行echo $TERM确认终端类型,确保值为xterm-256color、screen-256color这类标准终端类型。若不是,在~/.bashrc或~/.zshrc中添加:

    export TERM=xterm-256color
    

    执行source ~/.bashrc生效后重启Vim测试。

  • 修改Vim配置禁用终端控制序列
    在~/.vimrc中添加以下配置,清空Vim进入/退出时的终端初始化序列:

    set t_ti=
    set t_te=
    

    保存后重启Vim,多数情况下可直接消除该乱码。

  • 重新编译Vim并调整配置参数
    若上述方法无效,尝试以纯终端模式重新编译(避免GUI编译带来的终端兼容性问题),编译前务必清理旧编译文件:

    make clean
    ./configure --with-features=huge --enable-multibyte --enable-python3interp=dynamic --enable-cscope --enable-gui=no --enable-fontset --enable-largefile --disable-netbeans --with-compiledby="xxx" --enable-fail-if-missing --prefix=/root/software
    make && make install
    
  • 验证终端兼容性
    切换至系统原生终端、tmux或screen等不同终端环境测试,排除终端本身的兼容性问题。


用户原始编译配置:

./configure --with-features=huge --enable-multibyte --enable-python3interp=dynamic --enable-cscope --enable-gui=auto --enable-gtk2-check --enable-fontset --enable-largefile --disable-netbeans --with-compiledby="xxx" --enable-fail-if-missing --prefix=/root/software
make
make install

问题截图:
Vim新缓冲区出现字符

内容的提问来源于stack exchange,提问作者刘子鹏

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 08:15:32