Ubuntu 20.04系统中所有Vim插件无法正常工作如何排查解决
问题根因
报错信息里的^M是Windows系统使用的CRLF换行符(即回车符\r),Linux系统默认使用LF作为标准换行符,Vim无法识别脚本行尾多余的\r字符,会直接将其判定为非法命令抛出错误。所有插件都出现同类报错,说明本地拉取的所有插件文件都被错误加上了CRLF换行。
该问题绝大多数是Git换行自动转换配置错误导致:当前环境Git的core.autocrlf参数被设置为true,拉取远程仓库代码时会自动将仓库内原生的LF换行转换为CRLF,直接导致Vim加载插件脚本时解析失败。
修复步骤
- 先修正Git全局换行配置,在终端执行命令:
git config --global core.autocrlf input
该配置适配Linux/macOS环境逻辑:提交代码时自动将CRLF转换为LF,拉取代码时不做任何换行转换,从根源避免拉取的脚本带多余回车符。
- 清理之前下载的异常插件缓存,执行命令删除vim-plug的插件存储目录:
rm -rf ~/.vim/plugged/
- 重新打开Vim,执行
:PlugInstall命令重新安装所有配置的插件,安装完成后重启Vim,gruvbox主题、NERDTree等插件即可正常加载。
单文件临时修复方案
如果暂时不想重装所有插件,可以打开对应报错的插件脚本,在Vim内执行替换命令删除行尾的^M字符:
:%s/^M$//g
注意:命令中的^M不能直接输入^和M两个字符,需要先按Ctrl+V再按Ctrl+M才能正确输入。
该方案仅能修复单个文件的换行问题,后续安装新插件仍可能复现报错,优先推荐修正Git配置后重装插件的彻底解决方案。
内容的提问来源于stack exchange,提问作者VictoriaStudios
相关产品推荐
相关产品推荐

