完整来源:http://www.vim.org/scripts/download_script.php?src_id = 10391
这条线是:
    silent %s/[^????????»??\\\-!#$%&*+/<=>?@\^|~.]\@<=\\\([^????????»??\\\-!#$%&*+/<=>\?@\^|~.]\)/?\1/eg
有人请为我解读这个.较大的脚本旨在将Haskell中的一些运算符unicode-ify更熟悉的数学等价物.
作为该行的作者,我可以翻译.复杂的正则表达式通常是"只写",这依赖于vim正则表达式扩展.
这样做的目的是确保它不会像操作员那样\用漂亮的印刷品?进行替换\\.
它会检查以确保缓冲区中我们前面的字符不是有效的操作符号(所有内容的含义都是如此\@<=).这\@<=是一个'零宽度匹配后面',只有当它左边的东西出现时才会成功,但不会在结果匹配中包含它.
然后该\([^...]\)部分检查以确保跟随我们的东西也是非符号,在这种情况下,我们匹配它,然后由于\1结果中的包含它在输出中.
注意,这并不完美.不幸的是,它仍然会替换字符串内的反斜杠,但效果相当不错.
| 归档时间: | 
 | 
| 查看次数: | 262 次 | 
| 最近记录: |