从word_separators中删除了连字符,ctrl + d不再有意义

Far*_*her 4 regex sublimetext sublimetext3

-word_separators设置中删除了,这很好.

但是ctrl+ d上的单词a仍然与"a"匹配a-b,我不希望它再这样做了.

这是因为ctrl+ d用正则表达式边界包裹你的搜索\b,并且-仍然被认为是边界.

有什么我现在可以做的ctrl+ d不再考虑-边界了.

编辑:图片: 在此输入图像描述

"一"中a-b不应该强调,因为a-b在这种语言的单一变量名,这就是为什么我删除了-word_separators

更多说明:如果我试图替换变量的所有实例a,我不希望它与其他变量的部分匹配,如"a"中的a-b.

Mat*_*DMo 9

从我在回答您的其他问题时的一些非正式实验中可以看出,"word_separators"当双击选择单词时,设置似乎主要相关.例如,我在文件中有以下单词:

foob​​ar的

而我的word_separators列表./\\()\"'-:,;<>~!@#%^&*|+=[]{}`~?$,所以它包括-/,但不会_.如果我把光标放在第一个foo(没有先选择整个单词)并且点击CtrlD,我得到

foob​​ar2

如果我再继续打CtrlD几次,我明白了

foob​​ar3

所以只选择了"个别单词" - foo_bar不是,也不是foobar.但是,如果我设置word_separators.\\()\"':,;<>~!@#%^&*|+=[]{}`~?$(删除-/),我在CtrlD重复击中时会得到相同的结果:

foob​​ar4

-并且/仍然被视为单词分隔符,即使我从列表中删除它们.如果我添加_word_separators列表中,结果是相同的,只能得出一个明显的结论:word_separatorsCtrlD(find_under_expand)忽略.


然而,word_separators名单IS使用时双击选择一个单词.使用这样的列表:( .\\()\"'_:,;<>~!@#%^&*|+=[]{}`~?$缺少-/,但有_),foo依次双击每个单词提供以下内容:

foob​​ar5

foob​​ar6

foob​​ar7

foob​​ar8

有趣的是,双击第一个foo给出

foob​​ar9

指示类似选择的"框"突出显示没有注意word_separators.


当使用Find -> Find...搜索,word_separators将被忽略.如果未选择任何内容并将foo其输入搜索框(非正则表达式搜索),则会突出显示以下匹配项:

foob​​ar10

这是相同的,无论是否-,/和/或/word_separators与否.

如果"Whole Word"在选项设置,结果是有点不同,但同样他们并不无论是否发生变化-,/和/或/word_separators:

foob​​ar11


TL; DR

因此,结论是word_separators只有在双击选择单词时才有效.使用Find对话框或CtrlD(find_under_expand命令)依赖于某些内部分隔符列表,这显然无法更改(请参阅我的答案).


多一点点

我之前忘记添加的一些信息:word_separators一些插件也用于各种各样的事情,例如创建/修改/以其他方式处理选择,执行可编程完成,查找和替换以及其他类型的东西.