使用
跳过空格时可以正常工作(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
答案 0 :(得分:2)
从搜索表单中获取的语法符号在跳过表单中不可用。使用skip-syntax-...
(skip-syntax-forward "_")
或使用自己的一组字符移动
(setq "my-choice" "[[:alnum:]].")
在")"
之后评估表单应该跳到"...."
(skip-chars-forward my-choice)asdf....
或者,使用Emacs Werkstatt: Mx ar-symbol- TAB 显示一大堆处理符号的命令:前进,后退,删除,复制,隐藏等等
BTW,skip-chars
不采用语法的原因可能是速度。
Skip-chars非常快,读取和翻译语法表可能会降低它的速度。
答案 1 :(得分:1)
您可能需要(skip-syntax-forward "w_")
,它会跳过单词和符号字符。
如果要匹配以字符串形式编写的 regexp 中的语法类,要传递给search-regexp-forward
等函数,则需要加倍反斜杠:"\\s-"
。但是skip-syntax-forward
的参数不是正则表达式,只是一个字符串,其中每个字符代表一个语法类。
答案 2 :(得分:0)
您使用的命令错误,应该是:
(skip-chars-forward " \n\t")
(skip-chars-forward "A-Z_a-z-0-9")
无论你在字符串中添加什么内容都会被放入[]
正则表达式构造中,
并且它不会展开\\s-
。