我无法找到阻碍使用记事本++的问题的解决方案。
当您双击文字以突出显示该文字以及其他类似文字时,camelCase
或under_score
字词效果很好,但hyphen-words-are-clicked
时,这不会将其视为单个字,只会突出显示细分在“ - ”之间。
问题:如何自定义记事本++,以便将带连字符的单词视为单个单词?或者有人知道这样做的文本编辑器吗?
看到了这一点,但不确定如何实现它:http://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=Word_Customisation
答案 0 :(得分:12)
Notepad ++依靠Scintilla进行单词选择。正如caoanan在他的回答中所注意到的,可以使用SCI_SETWORDCHARS变量配置Scintilla。您可以使用简单的NppExec脚本在Notepad ++中设置此变量:
Plugins -> plugin Manager -> Show Plugin Manager
创建脚本
Plugins -> NppExec -> Execute ...
编写此代码(您可以在列表末尾添加其他字符,例如。$#@):
NPP_CONSOLE 0
sci_sendmsg SCI_SETWORDCHARS 0 "CDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-"
Plugins -> NppExec -> Advanced Options...
答案 1 :(得分:2)
使用Notepad ++编辑Lisp / Scheme源代码时遇到了同样的问题。
治愈在于潜在的Scintilla库(SciLexer.dll)。
我尝试过“直言不讳”的方式 - 破解代码并重建SciLexer.dll。
请注意' - 添加到以下代码
CharClassify.cxx
void CharClassify::SetDefaultCharClasses(bool includeWordClass) {
// Initialize all char classes to default values
for (int ch = 0; ch < 256; ch++) {
if (ch == '\r' || ch == '\n')
charClass[ch] = ccNewLine;
else if (ch < 0x20 || ch == ' ')
charClass[ch] = ccSpace;
else if (includeWordClass && (ch >= 0x80 || isalnum(ch) || ch == '_' || ch == '-'))
charClass[ch] = ccWord;
else
charClass[ch] = ccPunctuation;
}
}
或者,就像ScintillaDoc.html
中提到的那样,“聪明”的方式SCI_SETWORDCHARS(<unused>, const char *characters)
Scintilla有几个对单词有效的函数 被定义为来自特定集合的连续字符序列 的人物。此消息定义哪些字符是其成员 该集。字符集之前设置为默认值 处理这个功能。例如,如果您不允许“_” 一组字符使用:SCI_SETWORDCHARS(0,abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789“);
答案 2 :(得分:2)
我尝试了已发布的解决方案,但是当我移到另一个文件时,每次都必须再次运行脚本。因此,我在菜单中这样做:
Settings > Preferences > Delimiter
选择:
插入连字符:
-
它奏效了。
答案 3 :(得分:1)
http://sourceforge.net/p/notepad-plus/discussion/1290590/thread/39ba5cd8/
安装Npp_Exec插件并从此线程中复制字符串,添加您希望Npp认为是单词的一部分的符号。
答案 4 :(得分:1)
我还不知道Notepad ++中的那个选项。既然,您已经询问了其他任何文本编辑器,我建议您使用Sublime Text。这是一个非常酷的文本编辑器,具有许多智能功能。我打赌你会喜欢它。默认情况下,它不会将带连字符的单词视为单个单词。但是为自定义设置太容易了。您只需转到'Preference-> Setting-Default'
,即可找到以下设置:
"word_separators": "./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}`~?",
从那里,只需删除连字符,我们就完成了!
答案 5 :(得分:0)
解决方法是:
在“查找”窗口中,将文本设置为查找空格
在快捷方式映射器(主菜单部分)中,将“查找下一个”分配给Ctrl +右,将“查找上一个”分配给Ctrl +左
现在,只要搜索文本只是一个空格,它就会有效地成为唯一的分隔符。如果您需要其他分隔符,例如逗号和句点,请将查找文本设置为[,。]。
答案 6 :(得分:0)
如果您没有管理员权限且没有插件管理员,您可以通过下载dll / zip文件并将dll保存到npp install下的“plugins”子文件夹来安装大多数插件。然后重启npp。