我不确定如何正确描述这个问题,但这里有:
在emacs中,我双击选择一个单词,某些东西决定选择哪个字符 - 这叫什么? (在终端配置文件首选项中,这称为逐字符字符,因此我将使用该短语。)
如果没有网络模式,例如,如果我双击title
中的image_title
一词,它只会突出显示title
- 也就是说,下划线被识别为选择 - by-word delimiter。
启用网络模式后,逐个字词的行为会发生变化,而下划线不再是单词分隔符。在上一个示例中,现在双击会突出显示整个image_title
。这让我感到恼火,因为我通常想要选择下划线分隔标识符的部分。 (一般来说,我更喜欢任何不改变默认选择行为的模式。)
更改此网络模式行为的选项是什么?
编辑添加:在我的首选模式下,如果我双击_
字符,它会选择整个单词,包括下划线。我喜欢这种对选择行为的微妙而精确的控制。
答案 0 :(得分:0)
@lawlist - 感谢您的建议!我无法完全遵循这些功能,但它确实引导我沿着正确的道路前进:
double-mouse-1
,搜索了谷歌syntax-table
,您提及syntax-table
,我们在这里有什么 web-mode.el包含syntax-table
(以及bug #377。)web-mode的语法表大致包含v 11.2.2中的第1969行:
(defvar web-mode-syntax-table
(let ((table (make-syntax-table)))
(modify-syntax-entry ?_ "w" table)
(modify-syntax-entry ?< "." table)
(modify-syntax-entry ?> "." table)
(modify-syntax-entry ?& "." table)
(modify-syntax-entry ?/ "." table)
(modify-syntax-entry ?= "." table)
(modify-syntax-entry ?% "." table)
table)
"Syntax table used to reveal whitespaces.")
我认为?_ "w"
表示将_
视为单词字符。我将"w"
更改为"."
,并且下划线现在被视为我想要的字边界!
Hooray for stack overflow,google和github。
此外,现在我已经获得了一些正确的关键字,Stack Overflow建议这个可能有用的相关答案:Changing Emacs Forward-Word Behaviour