当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

auto-correct

中英文自动加空格
授权协议 MIT
开发语言 Ruby
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 国产
投 递 者 冯亮
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

auto-correct 自动在CJK(中文,日文,韩文)和半角字符(字母,数字和符号)之间添加空格。

中文,日语,韩语+英文混排自动替换补充空格,此方式已在Ruby China使用多年,支持HTML处理。

Before

[经验之谈]转行做ruby程序员的8个月, mysql 经验

After

[经验之谈] 转行做 Ruby 程序员的 8 个月, MySQL 经验

使用说明

irb> require 'auto-correct'
true
irb> "关于ssh连接的Permission denied(publickey).".auto_correct!
关于 SSH 连接的 Permission denied (publickey).
irb> "怎样追踪一个repo的新feature 和进展呢?".auto_correct!
怎样追踪一个 repo 的新 feature 和进展呢?
irb> "vps上sessions不生效,但在本地的环境是ok的,why?".auto_correct!
VPS 上 sessions 不生效,但在本地的环境是 OK 的,why?
irb> "bootstrap control-group对齐问题".auto_correct!
Bootstrap control-group 对齐问

ActiveModel 的 changed? 相关提示

由于 auto_correct 是直接修改原始变量值的,你可能会遇到由于没有引发 ActiveModel::Dirty 的相关 callback 事件而导致下面这种场景 ActiveModel 不会将相关的字段写入到数据库。

比如下面的情况:

class Topic < ActiveRecord::Base
  before_save do
    self.title.auto_correct!
  end
end

正确的方式:

class Topic < ActiveRecord::Base
  before_save do
    # 引发 ActiveModel::Dirty 的 change
    self.title_will_change!
    self.title.auto_correct!
  end
end

具体请参见 ActiveModel::Dirty 的文档

性能

详见 Rakefile

$ rake benchmark
       user     system      total        real
auto_correct!
 100 times  0.000000   0.000000   0.000000 (  0.004397)
 1000 times  0.030000   0.000000   0.030000 (  0.031084)
 10000 times  0.330000   0.010000   0.340000 (  0.335932)
auto_space!
 100 times  0.010000   0.000000   0.010000 (  0.002938)
 1000 times  0.020000   0.000000   0.020000 (  0.023121)
 10000 times  0.210000   0.000000   0.210000 (  0.221530)

TODO

  • 'Foo'的"Bar" -> 'Foo' 的 "Bar"

  • 什么,时候 -> 什么, 时候 -> 什么,时候

应用案例

  • Ruby China - 目前整站的标题都做了自动转换处理。

  • 自从进入移动时代,好像每个输入法都加入了自动修正功能。 在iOS, Android各大应用中比比皆是。 大概原理如下: 1.对用户输入的内容,保存一个供算法参考的上下文缓冲区 2.对输入进行分词,以及前缀匹配 3.找出“可能性”最大的组合 4.提示给用户 语料库都在服务器端离线计算完毕。 再生成参数表,客户端需要的时候再从网络的云端进行下载。 但,真的都不好用。 不好用,不如没有。

  • Disabling Auto-Correct And Auto-Capitalize Features On iPhone Inputs By Ben Nadel on January 5, 2012 Tags: HTML / CSS Over the weekend, I read Mobile First by Luke Wroblewski. In his book, Wroblewski

  • in .bashrc   #tab auto-completion ignore -case bind 'set completion-ignore-case on' #automatically correct mistyped directory names on cd shopt -s cdspell

  • 刚把系统升级到 Ubuntu 12.04 LTS。哦,错了,应该是重装。Ubuntu 这一点非常让人无奈。或许在下次我可以考虑下 Arch Linux 或者 Gentoo。 -------------------- 发现新 clone 的 oh-my-zsh 有点烦人,常常会自作主张提示是否要 correct。比如我输入 $ sudo aptitude install emacs23 它会提示我是

  • DB:12.1.0.2.0 RAC OS:AIX 7.1 【To patch only the GI home】  su - root  export UNZIPPED_PATCH_LOCATION=/oracle/data_dump/12c/27726478  export GI_HOME=/oracle/app/12.1.0/grid  export PATH=$PATH:$GI_HOME/O

  • bazel 编译的时候出错 首先 echo $CC 检查,若输出无值,则 export CC=cc

 相关资料
  • 描述 (Description) 在Template7中,您可以通过在标记中指定特殊属性来自动编译模板。 以下代码显示自动编译布局 - <script type = "text/template7" id = "myTemplate"> <p>Hello, my name is {{name}} and i am {{age}} years old</p> </script> 您可以使用

  • 问题内容: 大家好。我正在制作一个词汇应用程序,需要在其中创建一个 (或ArrayList)。为此,我创建了以下代码(仅作为示例): 我还尝试了以下方法: 他们两个都将该项目添加到列表中,但是在调试时,我发现它的数组有12个对象,如下所示: 我的问题是我不能拥有这些空项目,因为此新列表是上的键,因此任何更改都将导致异常,因为该键将不存在。 使用调试器的列表(tempSOLUTION)详细信息的屏幕

  • 我试图在Spring boot类中使用@Autowired注释将存储库放入一个用@Service注释的类中。但是,存储库显示为空。 以下是相关代码: 此时它会得到一个NPE,因为licenceReposity为空。 我可以使用此构造函数访问控制器类中的licenseRepository 但是,由于我直接在静态main方法中调用构造函数,这似乎不可用。将存储库放入此类的最佳方法是什么? 编辑:感谢您

  • 当我试图访问我的站点时,我必须在URL的末尾手动键入index.php。我正在尝试在访问站点时自动加载我的index.php文件。我的nginx配置文件如下所示。

  • 本文向大家介绍PHP命名空间和自动加载类,包括了PHP命名空间和自动加载类的使用技巧和注意事项,需要的朋友参考一下 PHP的命名空间(namespace)是php5.3之后才有的。这个概念在C#中已经很早就有了,php中的namespace其实和c#的概念是一样的。 为什么php中要使用namespace? 假设如果不使用namespace,那么每个类在一个项目中的名字就必须是固定的。因为php在

  • 这是一个在线翻译的c++库,在Linux系统上实现的. 支持百度和谷歌在线翻译 可中英或中日互译。 emacs插件支持