Skip to content

中日韩格式化指南

VMark 内置了一套全面的中文、日文和韩文排版规则。这些工具有助于在混合中日韩与拉丁字符时保持一致的排版风格。

快速开始

使用 格式 → 格式化中日韩文档,或按 Alt + Mod + Shift + F 格式化整个文档。

若只格式化选中内容,使用 Mod + Shift + F


格式化规则

1. 中日韩与拉丁字符间距

自动在中日韩字符与拉丁字符/数字之间添加空格。

格式化前格式化后
学习 Python 编程学习 Python 编程
共 100 个共 100 个
使用 macOS 系统使用 macOS 系统

2. 全角标点

在中日韩语境中将半角标点转换为全角。

格式化前格式化后
你好,世界你好,世界
什么?什么?
注意:重要注意:重要

3. 全角字符转换

将全角字母和数字转换为半角。

格式化前格式化后
12341234
ABCABC

4. 括号转换

将半角括号在包围中日韩内容时转换为全角。

格式化前格式化后
(注意)(注意)
[重点]【重点】
(English)(English)

5. 破折号转换

将双连字符转换为正确的中文破折号。

格式化前格式化后
原因--结果原因 —— 结果
说明--这是说明 —— 这是

6. 智能引号转换

VMark 使用 基于栈的引号配对算法,能正确处理:

  • 缩略语don'tit'sl'amour 等缩略形式保持不变
  • 所有格Xiaolai's 保持原样
  • 英尺英寸符号5'10"(英尺/英寸)等测量符号保持不变
  • 年代缩写'90s 等年代简写被正确识别
  • 中日韩语境检测:包围中日韩内容的引号使用弯引号或角括号
格式化前格式化后
他说"hello"他说 "hello"
"don't worry""don't worry"
5'10" tall5'10" tall

启用角括号选项时:

格式化前格式化后
"中文内容"「中文内容」
「包含'嵌套'」「包含『嵌套』」

7. 省略号规范化

统一省略号格式。

格式化前格式化后
等等...等等...
然后... 继续然后... 继续

8. 重复标点

限制连续标点符号的数量(可配置上限)。

格式化前格式化后(上限=1)
太棒了!!!太棒了!
真的吗???真的吗?

9. 其他清理

  • 多余空格压缩:多个 空格多个 空格
  • 移除行尾空格
  • 斜杠间距:A / BA/B
  • 货币符号间距:$ 100$100

受保护的内容

以下内容 不受 格式化影响:

  • 代码块(```
  • 内联代码(`
  • 链接 URL
  • 图片路径
  • HTML 标签
  • YAML 前置内容
  • 反斜杠转义的标点(例如 \, 保持为 ,

技术性结构

VMark 的 拉丁文段落扫描器 会自动检测并保护技术性结构,防止标点转换:

类型示例保护
URLhttps://example.com所有标点保持不变
邮件地址user@example.com@ 和 . 保持不变
版本号v1.2.31.2.3.4点号保持不变
小数3.140.5点号保持不变
时间12:301:30:00冒号保持不变
千位数1,0001,000,000逗号保持不变
域名example.com点号保持不变

示例:

格式化前格式化后
版本 v1.2.3 发布版本 v1.2.3 发布
访问 https://example.com 获取访问 https://example.com 获取
温度是 3.14 度温度是 3.14 度

反斜杠转义

在任何标点前加 \ 可防止转换:

输入输出
价格\,很贵价格,很贵(逗号保持半角)
测试\.内容测试.内容(点号保持半角)

配置

中日韩格式化选项可在 设置 → 语言 中配置:

  • 启用/禁用特定规则
  • 设置标点重复上限
  • 选择引号样式(标准弯引号或角括号)

上下文引号

启用 上下文引号(默认)时:

  • 包围中日韩内容的引号 → 弯引号 ""
  • 包围纯拉丁内容的引号 → 直引号 ""

这样可以在正确格式化中日韩内容的同时,保留英文文本的自然外观。


中日韩字符间距

VMark 内置了专用的中日韩文字间距功能,通过在字符间添加细微间距来提高可读性。

设置

设置 → 编辑器 → 字体排印 → 中日韩字符间距 中配置:

选项描述
关闭0无字符间距(默认)
细微0.02em几乎不明显的间距
轻微0.03em轻微间距
正常0.05em适合大多数场景的推荐值
宽松0.08em较明显的间距

工作原理

  • 对中日韩字符片段应用 letter-spacing CSS
  • 排除代码块和内联代码
  • 在所见即所得模式和导出的 HTML 中均有效
  • 对拉丁文和数字无影响

示例

无字符间距:

这是一段中文文字,没有任何字间距。

0.05em 字符间距:

这 是 一 段 中 文 文 字 , 有 轻 微 的 字 间 距 。

差异细微,但能提高可读性,尤其是较长的段落。


智能引号样式

VMark 可以在中日韩格式化时自动将直引号转换为排版正确的智能引号,并支持多种引号样式。

引号样式

样式双引号单引号
弯引号"文字"'文字'
角括号「文字」『文字』
法式引号«文字»‹文字›

基于栈的配对算法

VMark 使用复杂的基于栈的算法进行引号配对:

  1. 分词:识别文本中的所有引号字符
  2. 分类:根据上下文判断每个引号是开引号还是闭引号
  3. 缩略语检测:识别缩略形式(don't、it's)并保留
  4. 英尺英寸符号检测:识别测量符号(5'10")并保留
  5. 中日韩语境检测:检查被引用内容是否包含中日韩字符
  6. 孤立引号处理:优雅地处理不匹配的引号

示例

格式化前格式化后(弯引号)
"hello""hello"
'world''world'
it'sit's
don'tdon't
5'10"5'10"
'90s'90s

缩略语中的撇号(如"it's"或"don't")被正确保留。

切换光标处的引号样式

无需重新格式化整个文档,即可快速切换已有引号的样式。将光标放在任意引号对内,按 Shift + Mod + ' 切换。

简单模式(默认):在直引号和首选样式之间切换。

格式化前格式化后再次格式化
"hello""hello""hello"
'world''world''world'

完整循环模式:循环遍历所有四种样式。

步骤双引号单引号
1"text"'text'
2"text"'text'
3「text」『text』
4«text»‹text›
5"text"(回到开始)'text'

嵌套引号:当引号嵌套时,该命令切换包含光标的 最内层 引号对。

智能检测:撇号(don't)、英尺英寸符号(5'10")和年代缩写('90s)不会被视为引号对。

TIP

设置 → 语言 → 中日韩格式化 → 引号切换模式 中切换简单模式和完整循环模式。

配置

设置 → 语言 → 中日韩格式化 中启用智能引号转换,还可从下拉菜单中选择首选引号样式。


中日韩角括号转换

启用 中日韩角括号 时,包围中日韩内容的弯引号会自动转换为角括号。

支持的字符

角括号转换在被引用内容包含 汉字(CJK 统一表意文字 U+4E00–U+9FFF)时触发:

内容类型示例是否转换?
中文"中文"「中文」
含汉字的日文"日本語"「日本語」
仅平假名"ひらがな"✗ 保持为 "ひらがな"
仅片假名"カタカナ"✗ 保持为 "カタカナ"
韩文"한글"✗ 保持为 "한글"
英文"hello"✗ 保持为 "hello"

提示: 对于仅含假名的日文文本,请手动使用角括号 「」,或包含至少一个汉字。


测试段落

将以下未格式化的文本复制到 VMark 中,然后按 Alt + Mod + Shift + F 进行格式化:

text
最近我在学习TypeScript和React,感觉收获很大.作为一个developer,掌握这些modern前端技术是必须的.

目前已经完成了3个projects,代码量超过1000行.其中最复杂的是一个dashboard应用,包含了数据可视化,用户认证,还有API集成等功能.

学习过程中遇到的最大挑战是--状态管理.Redux的概念. . .说实话有点难理解.后来换成了Zustand,简单多了!

老师说"don't give up"然后继续讲"写代码要注重可读性",我觉得很有道理.

访问https://example.com/docs获取v2.0.0版本文档,价格$99.99,时间12:30开始.

项目使用的技术栈如下:

- **Frontend**--React + TypeScript
- **Backend**--Node.js + Express
- **Database**--PostgreSQL

总共花费大约$200美元购买了学习资源,包括书籍和online courses.虽然价格不便宜,但非常值得.

预期结果

格式化后,文本如下所示:


最近我在学习 TypeScript 和 React,感觉收获很大。作为一个 developer,掌握这些 modern 前端技术是必须的。

目前已经完成了 3 个 projects,代码量超过 1000 行。其中最复杂的是一个 dashboard 应用,包含了数据可视化,用户认证,还有 API 集成等功能。

学习过程中遇到的最大挑战是 —— 状态管理。Redux 的概念... 说实话有点难理解。后来换成了 Zustand,简单多了!

老师说 "don't give up" 然后继续讲 "写代码要注重可读性",我觉得很有道理。

访问 https://example.com/docs 获取 v2.0.0 版本文档,价格 $99.99,时间 12:30 开始。

项目使用的技术栈如下:

  • Frontend —— React + TypeScript
  • Backend —— Node.js + Express
  • Database —— PostgreSQL

总共花费大约 $200 美元购买了学习资源,包括书籍和 online courses。虽然价格不便宜,但非常值得。


已应用的更改:

  • 添加了中日韩与拉丁字符间距(学习 TypeScript)
  • 转换了全角标点(,。!)
  • 规范化了全角数字(3→3,1000→1000,200→200)
  • 将双连字符转换为破折号(-- → ——)
  • 规范化了省略号(... → ... )
  • 应用了智能引号,保留了撇号(don't)
  • 保护了技术性结构(https://example.com/docs,v2.0.0,$99.99,12:30)