有没有办法突出显示崇高文本或任何其他文本编辑器中的所有特殊重音字符?

Posted

技术标签:

【中文标题】有没有办法突出显示崇高文本或任何其他文本编辑器中的所有特殊重音字符?【英文标题】:is there a way to highlight all the special accent characters in sublime text or any other text editor? 【发布时间】:2012-12-08 04:48:40 【问题描述】:

我使用 html 编码 Sublime 文本中的特殊字符将所有特殊字符转换为它们的 HTML 代码。我在文件的不同部分有很多重音字符。所以,如果我可以选择所有特殊字符,然后使用插件一次转换,那就太好了!

是否有一个正则表达式可以帮助只选择所有特殊字符?

【问题讨论】:

【参考方案1】:

是的。

Sublime 文本支持正则表达式,您可以选择所有非 ASCII(代码点 > 128)字符。这个正则表达式对你来说应该足够了:

[^\x00-\x7F]

只需搜索和替换。

但是,如果您一开始就进行手动 HTML 编码,那么您就做错了。将您的文件保存为 UTF-8 编码(默认为 Sublime Text 2),并确保您的 Web 服务器也以 UTF-8 格式发送这些文件。无需转换、编码或任何操作。

【讨论】:

但是,在编写 HTML 电子邮件时,通常不能选择使用 UTF-8,因为并非所有电子邮件客户端都支持它。在这些情况下,手动 HTML 编码是必要的。 @mtnorthrop:您能告诉我们 UTF-8 何时会导致问题吗?也就是说,我正在发送大量 HTML 电子邮件,我想知道我会遇到哪些问题。 对此表示非常感谢...为了弄清楚这一点,我们已经尝试查看非 utf-8 数据文件数小时了【参考方案2】:

作为进一步参考(或作为补充):

名为 Highlighter 的 Sublime Text 2/3 包可以(正如他的名字所说)使用正则表达式突出显示某些字符...

“您还可以为要突出显示的字符添加自定义正则表达式。”

所以,有了这个包,加上@Mikko Ohtamaa的回答,我们就可以编辑文件了……

highlighter.sublime-settings - User

...并包含建议的正则表达式(此处表示为 [^\\x00-\\x7F])以得到如下结果:

  
    "highlighter_regex": "(\t+ +)|( +\t+)|[^\\x00-\\x7F]|[\u2026\u2018\u2019\u201c\u201d\u2013\u2014]|[\t ]+$"  

结果将是我们文件中任何“非ASCII(代码点> 128)字符”自动突出显示

请注意,这不会选择这些字符,只会突出显示它们以便您轻松实现。

【讨论】:

【参考方案3】:

另一个插件选项

我最近写了一个插件,专门用于突出显示非 ascii 字符: https://github.com/TuureKaunisto/highlight-dodgy-chars

使用 Highlighter 可以实现完全相同的功能,但使用不太通用的 Highlight Dodgy Chars 插件,您无需编写正则表达式,只需在设置。欧洲特殊字符默认列入白名单。

【讨论】:

以上是关于有没有办法突出显示崇高文本或任何其他文本编辑器中的所有特殊重音字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何在文本突出显示期间保留语法突出显示

崇高文本中的 JsLint 2

如何在没有焦点的情况下突出显示/选择 wpf 文本框中的文本?

将突出显示的文本更改为不同的颜色

在 HTML 文本输入中选择文本时更改突出显示颜色

突出显示 JTextPane 中的当前行