使Emacs向前单词停止在更多点

使Emacs向前单词停止在更多点,emacs,emacs24,Emacs,Emacs24,我讨厌emacs的一点是默认的单词移动。以下是我希望M-f停止的位置的示例(M-b应在相同的停止位置停止): 我正在使用Emacs 24.3.1和。我有一半的解决方案使用子字模式,它正确地处理驼峰大小写,另一半使用绑定M-f到邪恶前进字开始,它正确地处理上面示例中的所有非驼峰大小写停止。合并这两种解决方案将是理想的,但是子字模式对邪恶的前向字开始没有影响 我还尝试修改语法表,使用转发到word而不是默认的转发到word,并将其与子词模式相结合,但1)该模式不起作用(我添加的符号仍然被跳过;可能我

我讨厌emacs的一点是默认的单词移动。以下是我希望
M-f
停止的位置的示例(
M-b
应在相同的停止位置停止):

我正在使用Emacs 24.3.1和。我有一半的解决方案使用
子字模式
,它正确地处理驼峰大小写,另一半使用绑定
M-f
邪恶前进字开始
,它正确地处理上面示例中的所有非驼峰大小写停止。合并这两种解决方案将是理想的,但是
子字模式
邪恶的前向字开始
没有影响

我还尝试修改语法表,使用
转发到word
而不是默认的
转发到word
,并将其与子词模式相结合,但1)该模式不起作用(我添加的符号仍然被跳过;可能我做得不对?),2)我必须添加大量的符号,这些符号已经可以很好地使用
邪恶的前进单词begin
,3)它只适用于一种语言的语法表,我希望这项功能在全球范围内都可以使用

另外,我希望
M-d
kill word
)和
M-DEL
backword kill word
)也删除到上面示例中的停止


我试图解决这个问题已经有一段时间了,我到处都在问,包括emacs和邪恶模式IRC频道,但我一直没有找到解决方案。获得这种类型的单词移动将极大地提高我的工作效率。

我建议定义函数,将其分配给
子单词向前函数
子单词向后函数
变量,这些变量检查当前情况,然后调用邪恶函数或默认子单词函数


如果你正在前进,你可以使用
查看
做出决定;向后,使用
looking back

我建议定义函数来分配给
子词向前函数
子词向后函数
变量,这些变量检查当前情况,然后调用邪恶函数或默认子词函数

如果你正在前进,你可以使用
查看
做出决定;向后,使用
回顾

我的模式几乎完全符合您的要求

MyFoo myVar = obj->member.my_func(int some_arg);
^ ^  ^^ ^  ^^^^  ^ ^     ^^ ^^   ^^  ^^   ^^  ^
我的模式几乎完全符合你的要求

MyFoo myVar = obj->member.my_func(int some_arg);
^ ^  ^^ ^  ^^^^  ^ ^     ^^ ^^   ^^  ^^   ^^  ^
类似的东西:

(eval-after-load 'cc-mode
   '(loop for ch from ?A to ?Z by 1
       do (modify-syntax-entry ch "." java-mode-syntax-table)))
类似的东西:

(eval-after-load 'cc-mode
   '(loop for ch from ?A to ?Z by 1
       do (modify-syntax-entry ch "." java-mode-syntax-table)))

我也是!因此,几个月前我编写了自己的函数:检查它,如果您喜欢,可以根据需要修改它。我问题末尾的最后一次修改日期是2014年3月3日,即,
lawlist modify syntax intro
<代码>法律列表修改语法最终版<代码>法律列表转发实体;和
lawlist-backward-entity
。这是指向我的kill-word的链接:这是指向我的前后段落的链接:我也是!因此,几个月前我编写了自己的函数:检查它,如果您喜欢,可以根据需要修改它。我问题末尾的最后一次修改日期是2014年3月3日,即,
lawlist modify syntax intro
<代码>法律列表修改语法最终版<代码>法律列表转发实体;和
lawlist-backward-entity
。这是指向我的kill-word的链接:这是指向我的前后段落的链接:这需要一些解释。
C-h f modify syntax entry RET
或execute:
(信息“语法表概念(elisp)”)
另请参见这需要一些解释。
C-h f modify syntax entry RET
或execute:
(info“syntax Table Concepts(elisp)”)
另请参见这非常酷。有没有什么简单的方法可以让我修改源代码,使其不停在空格处?这对我来说太多了。是的,这对我来说也太多了,但我基本上从不使用单角色动作,所以它是可行的。如果要修改它,请查看
转发语法
,并根据不同的语法更改执行不同的操作。如果第167行()仅在
(char at)
不等于32(空格)时执行,该怎么办?我试过了,当日志语句说它工作时,点并没有移动过空间。知道为什么吗?我添加了一个选项“语法子词跳过空格”,并修复了缓冲区错误的结束/开始。应该在一两天内在melpa中。这很酷。有没有什么简单的方法可以让我修改源代码,使其不停在空格处?这对我来说太多了。是的,这对我来说也太多了,但我基本上从不使用单角色动作,所以它是可行的。如果要修改它,请查看
转发语法
,并根据不同的语法更改执行不同的操作。如果第167行()仅在
(char at)
不等于32(空格)时执行,该怎么办?我试过了,当日志语句说它工作时,点并没有移动过空间。知道为什么吗?我添加了一个选项“syntax subword skip spaces”,并修复了缓冲区的结束/开始错误。应该在一两天内在melpa中。