GVim中set guifont在vimrc不生效及Windows下^M显示问题求助
问题1:GVim字体写入_vimrc后不生效
原因分析
你在命令行输入的字体名称是下划线连接的等距更纱黑体_Slab_SC_Semibold,但_vimrc里用的是转义空格的写法,两者字体名称不匹配,导致配置不生效。另外Windows和Mac的GVim字体配置语法存在差异,直接统一设置可能在某一平台失效。
解决方案
- 复制生效的字体参数到_vimrc:在GVim正常模式下输入
:echo &guifont,复制输出的完整参数(比如等距更纱黑体_Slab_SC_Semibold:h14:W600:cGB2312:qDRAFT),直接替换_vimrc里的set guifont=...行。 - 添加跨平台条件判断:针对Windows和Mac分别设置字体,避免兼容性问题,示例配置:
if has('win32') set guifont=等距更纱黑体_Slab_SC_Semibold:h14:W600:cGB2312:qDRAFT elseif has('mac') " Mac下的等距更纱黑体字体名称可能不同,可通过:set guifont=按Tab补全获取 set guifont=SarasaMonoSC-Semibold:h14 endif - 验证字体名称:在GVim中输入
:set guifont=后按Tab键,Vim会列出系统中可用的字体名称,选择你需要的准确名称填入配置。
问题2:Windows下出现^M换行符(跨平台文件编辑问题)
原因分析
^M是Windows换行符(CR)的显示形式,Windows用CRLF(\r\n)作为换行,Mac用LF(\n)作为换行,跨平台编辑时格式不匹配就会出现该符号。
解决方案
- 开启自动换行符检测:在_vimrc中添加以下配置,让Vim自动识别文件的换行格式:
set fileformats=unix,dos,mac set autoread - **批量清除M符号**:打开含有M的文件后,在正常模式下执行命令:
该命令会删除所有行尾的CR字符。:%s/\r//g - 按系统自动设置默认换行格式:在_vimrc中添加条件判断,让Vim根据当前系统自动使用对应换行格式:
if has('win32') set fileformat=dos else set fileformat=unix endif - 强制指定换行格式打开文件:如果自动检测失效,可手动指定格式打开,比如以Unix格式打开:
以Windows格式打开::e ++ff=unix:e ++ff=dos
内容的提问来源于stack exchange,提问作者shaw.y.wang
相关产品推荐
相关产品推荐

