2010-10-14 40 views
10

什么是最简单的方式,使vim中的单词来回导航具有相同的行为?在vim中,当按下“w”时,它将光标前移一个单词,其中单词由一系列字母,数字和下划线或其他非空白字符序列组成,其中包含空格(空格,制表符,eol) 。另一方面,在emacs中,它会跳到下一个单词的结尾,并且该单词在语法表中按每个模式定义。修改emacs的前向/后向行为(就像在vi/vim中一样)

例如:具有在该行的开头光标下面显示了VIM把光标当你做forward-word(“w”)操作:

opt1.arg = opt2.arg 
^ ^^ ^^ ^^^

在Emacs是这样的:

opt1.arg = opt2.arg 
^ ^^ ^^

这真的取决于一个人的偏好,但我倾向于更喜欢vim风格,我想知道在emacs中有什么最简单的方法。我想我不是一个人谁从VIM切换到emacs的那么也许有人已经有一个解决方案,非常的kill-wordbackward-kill-word以及:)

我知道你可以通过M-fM-b等组合得到类似的东西, 但这不是重点。我也不想开始讨论哪种方法更好 - 在here中详细讨论了topis。

回答

1

大多this重复,它说:

(require 'misc) 

然后绑定要forward-to-wordbackward-to-word任何按键。为了杀死,创建一些包装这些函数的简单函数并杀死。

+1

我之前看到过其他帖子,但正如你所看到的,我是在寻求不同的东西(与同一主题有关),所以你的回答对此没有帮助。 – fikovnik 2010-10-16 00:59:48

+0

将'forward-to-word'指定给'C-right'很好,除了'CS-right'不再选择文本:-( – Malvineous 2012-04-08 11:51:11

6

实际上,你可以使用'viper-forward-word

(require 'viper) 
(global-set-key (kbd "M-f") 'viper-forward-word) 
(global-set-key (kbd "M-b") 'viper-backward-word) 
+0

由于某些原因,我必须使用大写字母才能使其工作: (要求'v蛇') (全球设置密钥(kbd“Mf”)'viper-forward-Word) (全局设置密钥(kbd“Mb”)'viper-backward-Word) – Glen 2012-07-26 02:31:02

+1

v蛇)没有为我工作,我需要(需要'viper-cmd),这是奇怪的,因为viper.el需要viper-cmd。我使用24.2.1。 – jpkotta 2012-11-26 16:24:34

+0

有与jpkotta相同的问题。使用(需要'viper-cmd)。 Im on emacs 24.3.1 – mawaldne 2014-01-23 20:27:33

0

我不知道为什么jpkotta的答案被删除,但在这里再次是:

我有一个改变,基于单词的命令的辅助模式操作语法变化(还有CamelCaseSubwords)。对于某些口味来说它可能有点过于细化,但我发现我基本上已经不再使用单个角色动作了。

https://bitbucket.org/jpkotta/syntax-subword

@ MODS的,我不知道为什么这个答案将被删除,因此,如果您选择删除这个答案太,我会很感激的解释。

+0

它不会被删除它是在另一个问题http://stackoverflow.com/a/13569228/2318073 – Ameen 2015-09-17 06:36:45

相关问题