V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
huacnlee
V2EX  ›  程序员

VS Code 插件 - 自动纠正代码中的中英文空格写法

  •  2
     
  •   huacnlee ·
    huacnlee · Jul 1, 2021 · 4908 views
    This topic created in 1761 days ago, the information mentioned may be changed or developed.

    基于 Rust 编写的 CLI 工具,用于自动纠正文案,给 CJK (中文、日语、韩语)与英文混写的场景,补充正确的空格,同时尝试以安全的方式自动纠正标点符号等等。

    除了纯文本的自动纠正以外,AutoCorrect 基于 Parser 的方式对各种类型源代码文件支持,能自动识别文件名,并准确找到字符串、注释做自动纠正。

    基本能支持所有的语言,实现逻辑简单,基于语言的方言做了 Parser,只处理字符串、注释部分,其他的忽略。

    AutoCorrect 的方案最早于 2013 年 出现于 Ruby China 的项目,并逐步完善规则细节,当前准确率较高(级少数异常情况),你可以放心用来辅助你完整自动纠正动作。

    https://ruby-china.org/topics/20489

    本来最早的时候,只是写了库,用来解决 Ruby, Go, Rust 项目里面使用,后面逐渐发现,深入一点实现,可以搞成一个 fmt 工具,自动处理,加上当前 VS Code 插件的能力,可以搞一个保存的时候自动纠正。

    VS Code 插件

    https://marketplace.visualstudio.com/items?itemName=huacnlee.auto-correct

    AutoCorrect 设计的原则是类似 Gofmt 默认开启,在 VS Code 保存的时候会执行格式化。

    效果演示

    CLI 工具安装

    https://github.com/huacnlee/autocorrect


    希望这个小工具能帮到你改善项目中的文档、注释、文案,也期望能帮助改善中文开源社区项目的文案细节。

    Supplement 1  ·  Jul 2, 2021

    正在实现检查提示机制,作为一个可选项:

    Supplement 2  ·  Jul 28, 2021

    用于 Lint 检查,可以配置到 CI 里面。

    GitHub Action

    Add to your .github/workflows/ci.yml

    steps:
      - name: Check source code
        uses: actions/checkout@main
    
      - name: AutoCorrect
        uses: huacnlee/autocorrect-action@main
    

    GitLab CI

    autocorrect:
      stage: build
      image: huacnlee/autocorrect:latest
      script:
        - autocorrect --lint ./
    

    https://github.com/huacnlee/autocorrect#github-action

    12 replies    2025-03-06 17:40:56 +08:00
    HankLu
        1
    HankLu  
       Jul 1, 2021
    只能空格吗?逗号那些呢?
    MajestySolor
        2
    MajestySolor  
       Jul 2, 2021
    挺好的,我个人非常讨厌中英文混在一起不空格的人 😺
    lucifer9
        3
    lucifer9  
       Jul 2, 2021 via iPhone
    代码里面混的少,主要是 md 里面
    weeshin
        4
    weeshin  
       Jul 2, 2021
    @MajestySolor
    特意去查了《中文出版物夹用英文的编辑标准》,里面也没有强制需要在中英文之间加空格
    kiritoxf
        5
    kiritoxf  
       Jul 2, 2021
    baurine.vscode-pangu
    Rache1
        6
    Rache1  
       Jul 2, 2021
    😂 平时回帖,我都要去这样加空格
    passerbytiny
        7
    passerbytiny  
       Jul 2, 2021 via Android
    规范是,中英文之间输入时不空格,但排版时自动加空格。奈何 Web 发展太快了,规范跟不上,现在 Word 网页版的空格排版空能都不完全,而 HTML 规范以及基于此的 Markdown 等轻量标记语言,一直都没有涉及跨语言的排版。

    请注意:手动加的空格,而不是排版是自动加的空格,是会影响字数统计的。这对源代码上无影响,因为代码通常只统计行数不统计字数。但是对字数敏感的文章,手动加空格会产生严重影响。
    huacnlee
        8
    huacnlee  
    OP
       Jul 2, 2021
    @passerbytiny

    现在我设计这个可以实现 Lint 机制,对可能有问题的部分做出标识,然后给出纠正提示。

    正在做,结合当前实现以及 VS Code Extension 的机制可以搞,应该这周末就可以用了。

    ![]( https://l.ruby-china.com/photo/huacnlee/1f8ad3d3-8b0d-468a-a9fb-042cf9ed5a36.png!large)
    gs1998
        9
    gs1998  
       Jul 2, 2021
    感谢🙏!非常讨厌中英文连在一起的人!
    XIVN1987
        10
    XIVN1987  
       Jul 2, 2021
    这 vscode 什么主题?看起来很漂亮
    avenger
        12
    avenger  
       Mar 6, 2025
    有办法可以把英文标点,自动转为中文吗
    类似把 "" 转成 「」 的方案
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5879 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 77ms · UTC 06:32 · PVG 14:32 · LAX 23:32 · JFK 02:32
    ♥ Do have faith in what you're doing.