Skip to content

『盘古之白』中文排版自动规范化的 Vim 插件

Notifications You must be signed in to change notification settings

hotoo/pangu.vim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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,则整个文档不自动规范化。

参考

About

『盘古之白』中文排版自动规范化的 Vim 插件

Resources

Stars

Watchers

Forks

Packages

No packages published