关于Emacs中前进和后退的单词行为

ale*_*nco 9 emacs command

我不知道我的设置是否有问题,但是当我按下Mf(转发一个单词)时,无论我在哪里,它都不会将光标放在下一个单词中(仅在单词之间).将光标放在前一个单词的开头的Mb不会发生这种情况.

这是正常行为吗?如何将光标放在下一个单词的开头?

小智 10

描述的宏解决方案是一个伟大的方式获得在会话这种行为,但它是一个有点不方便,如果这就是你想要的默认行为,因为你必须在每次启动emacs的时间定义它.如果你希望Mf一直这样工作,你可以定义一个elisp函数并将其绑定到密钥.把它放在.emacs文件中:

(defun next-word (p)
   "Move point to the beginning of the next word, past any spaces"
   (interactive "d")
   (forward-word)
   (forward-word)
   (backward-word))
(global-set-key "\M-f" 'next-word)
Run Code Online (Sandbox Code Playgroud)


Ale*_*bas 7

好吧,就这样我们很清楚,我会假设你在谈论命令forward-wordback-word这些命令默认绑定到Alt+ fAlt+b

例如字符串:"Hello dolly我在这里"

如果您的光标位于"Hello"的"H"上,并且您执行了前向字,则光标将移动到"Hello"和"dolly"之间的空格,但听起来您希望光标位于字母" d"of"dolly"而不是在它前面.

所以,做两次前向词,然后做一次后向词.

那会把你的光标放在"小车"的"d"上.

这可以通过宏自动完成.

;; =评论,不要输入它们

Ctrl+ x (;;启动宏

Alt+ f Alt+ f Alt+b

Ctrl+ x );;结束宏

然后运行最后定义的宏执行此操作:

Ctrl+x e

编辑:正如评论中提到的pascal,这也可以完成

Alt+ f Ctrl+f

您也可以将其放入宏中,无论哪种方式结果相同.

  • 是的,我觉得你开始的东西会真正地影响你对其他文本编辑器的看法.我从VIM开始,不能相信在emacs中你不能只输入'w'和'b'来跳过Vim中的单词. (2认同)