如何将连字符视为整个单词的一部分

如何将连字符视为整个单词的一部分

我所在的公司在变量名称中使用连字符。出于可读性考虑,使用 Notepad++ 进行编辑。

这会在搜索变量时引起问题,正如您在此处看到的:

变量名称 = “var-1”

部分源代码:

function f-var-1 (INPUT l-var-1):
...
end function.
...
<do-something-with(var-1)>
...

当我想查看变量 所做的事情时var-1,我只想看到带有 的行do-something,但是,即使在检查 时,由于连字符的存在,和whole words的片段也会被突出显示。f-var-1l-var-1

有人知道该如何处理吗?

编辑

另外,当我双击包含连字符的名称时,我希望整个单词(包括连字符之前或之后的部分)都突出显示。

答案1

您可以添加任何字符作为单词的一部分。

菜单 > 设置 > 首选项 > 分隔符

  • 勾选“将您的角色添加为单词的一部分”
  • 只需添加连字符
  • Close

优先:

在此处输入图片描述

实际操作中(双击 时var-1):

在此处输入图片描述

答案2

这应该有效:

  • 找什么:[^-]var-1

  • 搜索模式:正则表达式

这将搜索var-1除非它前面有破折号。(如果var-1它位于文件的开头,则也不会找到)

答案3

注意:此答案是在问题如下时发布的:修订版 2。答案将来可能会也可能不会被扩展以解决此后问题中增加的内容。


匹配var-1整个单词相当于

  • \bvar-1\b正则表达式,\b匹配单词边界;
  • 或与单词字符匹配的(?<!\w)var-1(?!\w)位置,分别是负向后视和负向先行。\w(?<!…)(?!…)

后一种形式可以很容易地调整为-如下形式\w

(?<![\w-])var-1(?![\w-])

不要忘记选中“正则表达式”复选框。

答案4

看来您可以更改 NP++ 用作单词字符的字符以包含-。为此,您需要先安装 NppExec 插件。

选择插件 → NppExec → 执行并输入命令:

sci_sendmsg 2077 0 @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-_"

var-1现在您可以使用选项进行搜索仅限整个单词和搜索模式:普通的

请注意,切换到其他选项卡时,此功能将停止工作,因此您需要重新运行该命令(Ctrl+F6)。下面的链接提到使用 NppScripting,但我对此并不熟悉。

更多详细信息请参见:https://sourceforge.net/p/notepad-plus/discussion/331754/thread/993b6ab9/

相关内容