Pangu.vim
『盘古之白』中文排版自动规范化的 Vim 插件
Install / Use
/learn @hotoo/Pangu.vimREADME
pángǔ.vim
盘古插件用于自动格式化、规范化中文排版。
它会将一些不规范,或不推荐的排版方式,在保存文件时进行自动格式化、规范化。
功能
- 中英文字符间增加一个半角空白。
- 特殊的,日期可以指定不添加空白。
- 中文前后的半角标点转成全角标点。
- 全角英文、数字转成半角字符。
- 连续的句号自动转省略号。
- 感叹号、问号最多允许连续重复 3 次。
- 其他中文标点符号不允许重复出现。
- 剔除不可见空白。
- 中文和English之间要有空白.
+ 中文和 English 之间要有空白。
let g:pangu_rule_date = 0
- 今天是 2022 年 1 月 21 日星期五。
+ 今天是2022年1月21日星期五。
let g:pangu_rule_date = 1
- 今天是2022年1月21日星期五。
+ 今天是 2022年1月21日 星期五。
- <世界观: 现代人必须要懂的科学哲学和科学史>这本书重建了我的科学观和世界观.
+ 《世界观:现代人必须要懂的科学哲学和科学史》这本书重建了我的科学观和世界观。
- 0123456789
+ 0123456789
- ABCDEFG...XYZ
+ ABCDEFG...XYZ
- abcdefg...xyz
+ abcdefg...xyz
- 真是太无语了。。。
+ 真是太无语了······
- 苍天哪!!!!!这是怎么了??????
+ 苍天哪!!!这是怎么了???
- 不小心多打了标点,,,和符号。。
+ 不小心多打了标点,和符号。
支持的文件格式
推荐在以下文件格式中使用:
- Markdown (*.md, *.markdown)
- Text (*.text, *.txt)
- Wiki (*.wiki)
- Vim 中文文档 (*.cnx)
如果想在其他格式的文件中使用这个功能,可以执行 :[range]Pangu 命令。
同时可以在 vimrc 中开启保存文件时自动规范化功能。开启方式:
autocmd BufWritePre *.markdown,*.md,*.text,*.txt,*.wiki,*.cnx call PanGuSpacing('ALL')
注意:目前只对纯文本格式的文件支持较好。其他源代码场景,请谨慎开启。
如果有合适的文件格式推荐,请提交 Issue
安装
via vim-plug:
Plug 'hotoo/pangu.vim', { 'for': ['markdown', 'vimwiki', 'text'] }
let g:pangu_rule_date = 1
via Vundle:
Plugin "hotoo/pangu.vim"
用法
:[range]Pangu 命令
手动执行该命令,将当前缓冲区内容进行规范化。
注意:从 1.0 开始,:Pangu 命令开始支持 range 模式,不兼容地,0.x 默认
规范化所有内容,1.0 由于 range 特殊性,默认规范化选中行或当前行部分。
希望规范化所有内容时,可以使用 :PanguAll 命令。
:PanguAll
规范化当前缓冲区内所有内容。
:PanguDisable 命令
禁止自动规范化。
:PanguEnable 命令
启用自动规范化。
技巧
批量规范化多个文档。
$ vim a.md b.md c.md
:argdo PanguAll | update
:wq
持久化禁用
在编辑的文档中任何位置注明 PANGU_DISABLE,则整个文档不自动规范化。
参考
Related Skills
node-connect
334.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
334.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.2kCommit, push, and open a PR
