我在编写 HTML 文件时使用 Notepad++ 作为主要编辑器。html.xml
定义 HTML 文件自动完成规则的默认 API 文件总是让我烦恼,因为它充满了旧的/过时的/无效的标签名称。为了解决这个问题,我试图为有效的 HTML5 创建一个新 API 文件。
其中一个问题是非字母数字字符似乎无法被编辑器识别(您可以在默认的 HTML 自动完成文件中看到一个这样的实例 - 它定义了!doctype
但您永远无法让它出现因为编辑器似乎不喜欢这个!
字符)。
!
我尝试用转义版本(例如感叹号)替换有问题的字符,但似乎没有什么区别。
所以我的问题是,有没有办法让 Notepad++ 用户定义语言文件识别非字母数字字符?
(另一个问题是这个问题应该在这里问还是在 StackOverflow 上问...我把它发布在这里是因为它实际上并没有问任何有关编程的问题。它更多的是关于编程工具的使用。)
例子(在首选项中启用自动完成功能,选择 HTML 作为语言并输入字母):
删除刚刚输入的字母,然后输入感叹号。不会弹出自动完成选择,即使你滚动到顶部(当它打开其他字符时)第一个条目是!doctype
。
事实上,默认 HTML API 文件的情况让我相信这是无法做到的,但如果是这样的话,为什么它会!doctype
列在那里呢?
更新
我也尝试过将 API 文件中的默认编码从 更改为Windows-1252
(UTF-8
以及一些其他编码),并尝试将测试文件中的编码更改为匹配(在编码菜单中),但这似乎没有什么区别。
答案1
不幸的是没有办法,因为这就是 Notepad++ 的实现方式。
我查看了 Notepad++ 的源代码,当它自动完成时,它会检查到单词您正在输入的内容。这意味着它仅检查字母数字字符和“_”。
因此,如果您输入“!d”并按下CTRL+Space激活自动完成下拉菜单,它将反向解析您的字符串并停在“!”处,因为这不是字母数字,也不是“_”。因此,它将显示以“d”开头的单词。