如何向前向/后向单词功能添加任意字符(例如连字符),因此Emacs会将“k-vector”等单词作为单个单词处理。关于双击单词的同样问题。
答案 0 :(得分:5)
语法表定义哪个字符被视为单词成分。你可以read about it here。
答案 1 :(得分:1)
Emacs" word"的概念是相当固定的,并不是你想要的。你可以搞乱语法表,但它可能会破坏主模式的功能。
AFAICT你想要的是处理Emacs所称的"符号"而不是"单词"。例如。使用forward-symbol
和backward-symbol
命令。
使用其他命令的最简单方法可能是启用superword-mode
。
答案 2 :(得分:0)
在您的.emacs
文件中添加以下内容,以便为每种主要模式的字词添加连字符:
(add-hook 'after-change-major-mode-hook
(lambda ()
(modify-syntax-entry ?- "w")))
答案 3 :(得分:-1)
您可以使用此代码使用正则表达式,它使用空格或父项作为单词分隔符
(defun backward-word-with-dash ()
(interactive)
(search-backward-regexp "[ ()][A-Za-z\-]+ *")
(forward-char))
(defun forward-word-with-dash ()
(interactive)
(search-forward-regexp " *[A-Za-z\-]+[ ()]")
(backward-char))
(global-set-key "\M-b" 'backward-word-with-dash)
(global-set-key "\M-f" 'forward-word-with-dash)
如果您想要其他字符,只需将其添加到正则表达式