我在 Spacemacs 中用的 vim-style,但是发现 vim 正则(用:
激活的那个)效率不高,2万行左右的词库进行批量替换就足以把 Emacs 卡死了。
用 replace-regexp
就没问题,同样的数据量在我的机子上 2s 完成。
然而两种正则的风格略有不同,特别是网上一些现成的(我用过的)模板更多是用 vim,我也更熟悉一点。
各位用哪个更多?或是用 Perl 等其他工具?
我在 Spacemacs 中用的 vim-style,但是发现 vim 正则(用:
激活的那个)效率不高,2万行左右的词库进行批量替换就足以把 Emacs 卡死了。
用 replace-regexp
就没问题,同样的数据量在我的机子上 2s 完成。
然而两种正则的风格略有不同,特别是网上一些现成的(我用过的)模板更多是用 vim,我也更熟悉一点。
各位用哪个更多?或是用 Perl 等其他工具?
私以为 Emacs 的正则对于文本编辑器来说,仅仅是够用而已。当然,Emacs 众会说:Emacs 可不仅仅是文本编辑器!这,,可就没办法了。
我用 SNOBOL
,从文本替换程序直接生成汇编程序。
* replace foo to bar
LOOP LINE = INPUT
LINE 'foo' = 'bar'
OUTPUT = LINE :(LOOP)
END
把一个 feature 跟一个函数比,有失公平。
当你 :%s/
输入 pattern 的每一个字符,evil 都会整个 buffer 查找一遍,并把符合的项高亮标记起来。 当你继续输入 replacement 的每一个字符时,evil 又一遍遍把预览效果画出来。
所以,大文件可能主要消耗在这里。 最后回车的时候,vim-regexp 也是要转成 emacs-regexp 执行的。 相关函数:evil-transform-vim-style-regexp
直接 replace-regexp
就是一步到底了,不需要做各种效果。
我觉得就原生的
replace-regexp
结合
regexp-builder
就够用了