我想编辑find_under_expand
( ctrl+d
) 以将连字符的单词视为单个单词。因此,当我尝试替换 var 的所有实例时a
,它不应该匹配单词中的“a”的子字符串,例如a-b
,它目前正在匹配。
我假设find_under_expand
将您当前的选择包装在正则表达式边界中,如下所示:\ba\b
我需要它包装成这样的东西:\b(?<!-)a(?!-)\b
该find_under_expand
命令的源代码是否可编辑?还是我必须重写整个事情?我不知道从哪里开始。
我想编辑find_under_expand
( ctrl+d
) 以将连字符的单词视为单个单词。因此,当我尝试替换 var 的所有实例时a
,它不应该匹配单词中的“a”的子字符串,例如a-b
,它目前正在匹配。
我假设find_under_expand
将您当前的选择包装在正则表达式边界中,如下所示:\ba\b
我需要它包装成这样的东西:\b(?<!-)a(?!-)\b
该find_under_expand
命令的源代码是否可编辑?还是我必须重写整个事情?我不知道从哪里开始。
Sublime 的命令以以下几种方式之一实现:作为宏,作为插件,以及在内部作为编译程序的一部分(可能作为 C++)。默认的宏和插件可以Packages/Default
在 ST2 的目录中找到(Packages
选择 时打开的目录在哪里Preferences -> Browse Packages...
),或者压缩到Installed Packages/Default.sublime-package
ST3 中的文件中,可使用 @skuroda 的优秀PackageResourceViewer
插件提取,可通过 Package Control 获得。宏有.sublime-macro
扩展,而插件是用 Python 编写的并且有.py
扩展。
我在 ST3 中搜索了整个Defaults
包(事情通常与 ST2 中的相同),但无法找到.py
包含find_under_expand
命令的宏或文件,或者FindUnderExpand
,这是在插件中命名命令类时的约定。因此,我强烈怀疑这个命令是 Sublime 内部的,可能用 C++ 编写并链接到可执行文件或.dll|.dylib|.so
库中。
所以,看起来没有一个现有的文件可以轻松修改以调整负面的前瞻/后视模式(我认为这就是那些,我的正则表达式有点生疏......)。相反,您必须从头开始实现自己的插件,该插件读取设置文件中的值,从您之前的问题和我自己的测试来看"word_separators"
,当前的实现find_under_expand
似乎没有这样做。从理论上讲,这应该不会太困难 - 您可以打开一个快速面板,用户在其中输入要搜索的模式/正则表达式,您可以遍历当前视图以查找匹配项并突出显示/选择它们。
祝你好运!