Emacs定义键,Vi蛇模式键绑定

问题描述:

我试图学习emacs,得到vi自定义键绑定。Emacs定义键,Vi蛇模式键绑定

使用Viper模式,什么是重新绑定密钥的正确方法? (我使用的是Colemak keyboard layout(而不是qwerty),所以不得不改变像n - > j)的东西,但希望它能以viper模式工作。

从上GNU.org此键绑定指南: http://www.gnu.org/software/emacs/manual/html_node/viper/Key-Bindings.html

它说,把你的.viper文件的命令是:

(define-key viper-vi-global-user-map "\C-v" 'scroll-down) 

它不工作对我来说...其实不知道我甚至有功能“定义键” ......

M-x define-key [No match] 

我不知道,如果“确定键”可以用我的版本的Emacs的?

这工作,但不是在毒蛇模式

(global-set-key "n" "j") 

任何帮助将非常感激。这是我第一次使用Emacs,因为它让Viper模式正常工作是一件很痛苦的事情。

感谢您的帮助......

希望一些有用的答案在这里:

首先,将在.viper作品对我来说这条线。请注意,viper-vi-global-user-map适用于当您处于命令模式下时,不适用于插入模式。

其次,define-key不是一个命令,它是一个常规函数,这只是意味着它不能用M-x调用。请参阅此Emacs wiki page了解有关该区别的更多细节。但这是一个很好的尝试。

三,global-set-key一个命令,你可以尝试用制作M-X Global公司设置键的变化。但是,这在current global map中设置了密钥,这与viper-vi-global-user-map不一样。 Viper模式使用一堆不同的键盘映射使Emacs的行为类似于vi,但所有映射都覆盖在全局映射之上。

我猜你发现C-V没有义务像你想,当你在插入模式下。这可以通过添加以下内容到.viper解决:

(define-key viper-insert-global-user-map "\C-v" 'scroll-down) 

最后,scroll-down可能不是你想要的。 down指的是文本向下移动(给定一个固定窗口的角度)。 C-v通常绑定到'scroll-up。但是,也许这正是你想要的。

警告:我不是v蛇模式的用户,我甚至不知道如何使用vi。所以我的术语可能会关闭。但我发现改变毒蛇模式中的东西非常有趣。

编辑补充

从您的评论听起来像你想ň是一样什么Ĵ默认绑定到。尝试添加此:

(define-key viper-vi-global-user-map "n" 'viper-next-line) 

在“正常”模式我做的Mx描述-J键,它告诉我,Ĵ势必'viper-next-line,以及上述生产线将结合ñ相同的常规。重复您想要转移的其余绑定。

+0

嘿Trey,谢谢你的详细回复。 :)当你说“命令模式”,你的意思是插入模式的相反吗? Vim调用这个正常模式。其实我想让它在正常模式(运动模式)下工作? – 2010-10-28 21:12:29

+0

我应该有一个更现实的“定义键”的例子,实际上我想在正常/移动模式下将“n”变成“j”。但在插入模式下保持“n”为“n”。 (这是因为“j”以及“h,k,l”是VIM运动控制的一部分,它必须变成“n,h,e,i”Colemak的等价物) – 2010-10-28 21:21:52

+0

@Quang查看最新增加的内容。 – 2010-10-28 21:52:57

邪恶模式是emacs的vim仿真层,并为colemak调整它,我的https://github.com/wbolster/evil-colemak-basics包帮助很多。