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

如何在(neo)vim中显示或高亮零宽不可见字符

可直接落地的配置方案

针对你用的Neovim 0.5.1 + iTerm2 + MacOS环境,按下面操作即可实现所有零宽字符可见:

1. 基础配置(覆盖绝大多数场景)

直接在你的init.vim配置文件中加入如下代码:

" 开启不可见字符显示开关
set list
" 自定义不可见字符显示样式,零宽空格等特殊字符默认显示为☒,你也可以换成?等你想要的符号
set listchars+=nbsp:☒,trail:·,tab:>-,precedes:«,extends:»
" 专门匹配你提到的\u3164(朝鲜语填充零宽字符),用红色高亮显示
match SpecialKey /\%u3164/
hi SpecialKey ctermfg=red guifg=red

配置完成后重启Neovim即可生效,如果不想默认开启,也可以在需要的时候手动在Normal模式输入:set list临时开启,输入:set nolist关闭。

2. 全零宽字符覆盖配置

如果需要覆盖所有常见的零宽字符(零宽空格、零宽连字符、BOM标记等),可以再加这段自动规则:

augroup ShowAllZeroWidthChars
  autocmd!
  " 匹配所有Unicode分类中的零宽字符,统一高亮显示
  autocmd BufEnter * match Error /[\u200b-\u200f\u202a-\u202e\u2060-\u2064\ufeff\u3164]/
augroup END
" 自定义零宽字符的高亮样式,这里用红底白字方便识别,你可以自行修改颜色
hi Error ctermbg=red guibg=red ctermfg=white guifg=white

3. iTerm2适配检查

如果配置完成后还是没有生效,检查iTerm2设置:

  • 打开iTerm2偏好设置 → Profiles → Text 标签页
  • 确认勾选「Use Unicode version 9+ widths」,避免Unicode宽度判断错误导致字符不显示

内容的提问来源于stack exchange,提问作者Markus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:39:02