2

虽然跳过空格可以正常使用

(skip-chars-forward "\s-")

我似乎无法使用跳过符号

(skip-chars-forward "\s_")

也许我错误地使用了她的命令,并且在第一种情况下它以某种方式恢复了?

相关文档似乎没有回答这个问题:

http://www.gnu.org/software/emacs/manual/html_node/elisp/Syntax-Class-Table.html http://www.gnu.org/software/emacs/manual/html_node/emacs/Regexps.html

4

3 回答 3

2

采用搜索形式的语法符号不能从跳过形式中使用。采用skip-syntax-...

(skip-syntax-forward "_")

或者使用自己的一组字符来移动

(setq "my-choice" "[[:alnum:]].")

下面的评估表")"应该跳后"...."

(skip-chars-forward my-choice)asdf....

或者,使用Emacs WerkstattM-x ar-symbol- TAB显示一大堆处理符号的命令:前进、后退、删除、复制、隐藏...等

skip-chars顺便说一句,不采用语法的原因可能是速度。跳过字符非常快,阅读和翻译语法表可能会减慢速度。

于 2013-09-23T08:23:02.133 回答
1

您可能想要(skip-syntax-forward "w_"),它会跳过单词和符号字符。

如果您想匹配以字符串形式编写的正则表达式search-regexp-forward中的语法类,以便传递给类似 的函数,您需要将反斜杠加倍:"\\s-". 但是 to 的参数skip-syntax-forward不是一个正则表达式,只是一个字符串,其中每个字符代表一个语法类。

于 2013-09-23T12:58:48.173 回答
0

您使用的命令错误,应该是:

(skip-chars-forward " \n\t")
(skip-chars-forward "A-Z_a-z-0-9")

无论您在字符串中放入什么,都会被放入[]正则表达式构造中,并且不会展开\\s-.

于 2013-09-23T07:47:53.493 回答