Emacs中有哪些软件包可用于模式编辑?您使用什么,为什么?
让我们尝试为每个答案发布一个软件包。我建议提及每个软件包的优点和缺点。
这是我对模式编辑的定义(找不到专门的Wikipeadia文章):
模态编辑 -文本编辑的样式,当用户通常在按键不引起其字符插入而通常在“正常模式”之间切换时,而对按键进行相应的文本操作则是在文本上执行各种操作,而在按键插入相应字符时进行“插入模式”。当然,可能还有更多模式。大多数现代编辑器都不是模态的。Vi(Vim)是模式文本编辑器的一个示例。
Emacs中有哪些软件包可用于模式编辑?您使用什么,为什么?
让我们尝试为每个答案发布一个软件包。我建议提及每个软件包的优点和缺点。
这是我对模式编辑的定义(找不到专门的Wikipeadia文章):
模态编辑 -文本编辑的样式,当用户通常在按键不引起其字符插入而通常在“正常模式”之间切换时,而对按键进行相应的文本操作则是在文本上执行各种操作,而在按键插入相应字符时进行“插入模式”。当然,可能还有更多模式。大多数现代编辑器都不是模态的。Vi(Vim)是模式文本编辑器的一个示例。
Answers:
evil
中,ê xtensible VI 大号艾尔为Emacs除了可疑的名称之外,evil
它是当前vim
在Emacs中进行仿真的最新技术(就此而言,可能还有其他地方)。它支持其他Vim仿真程序包所规避的许多功能,包括:
vim
文字对象vim
寄存器vim
键盘宏ex
命令vim
意味着您切换到没有Emacs的系统时,不会失去肌肉记忆。vim
已将许多软件包移植到evil
。vim
样式语法是模块化的,非常适合用户扩展evil
本身是非常可扩展的:创建自己的文本对象,运算符和动作!evil
使最常见的用例变得异常容易。evil
是一个非常复杂的系统。在邪恶的核心上进行黑客入侵可能变得相当复杂。vim
键绑定不一定在人体工程学上最佳。有时,将它们移植到其他系统时会感到有些武断。有god-mode
(https://github.com/chrisdone/god-mode),它使用标准的Emacs键绑定,但不需要按住修饰符。当启用上帝模式时,C-...
绑定不需要修饰符,并且M-...
绑定使用前缀而不是修饰符。
作为来自github页面的示例:
之前:Cp Ck Cn M- ^)Cj Cy Mr Cx zz M-2 Mg Mg Cx Cs
之后:pkng ^)jygr。。2个
添加我自己的,谢谢@Mark的鼓励。
从多年的ergoemacs模式经验开始,专为emacs设计,目标是成为最有效的系统。关键选择是尽可能多地基于科学,它是基于关键频率和关键易按分数的统计数据。最常用的命令映射到最容易按下的键。从每周实验的3年中,还考虑了其他问题,例如分组和键绑定bigram。
有趣的地方:
缺点:
我是作者,因此请注意,我可能会无意识地产生偏见。随时发表评论或纠正。
Boon是用于模式编辑的鲜为人知的软件包之一。它不模拟Vi(或Vim),但提供针对Colemak键盘布局优化的原始布局。
首先是空间分配,然后是助记符:命令中键的分配优先基于键盘上键的位置。第二个问题是按键盖上的印刷内容。
简单的手指滚动:常见的组合应该是左/右手交替或简单的单手滚动。
使用主行和粗壮的手指来执行最常用的命令
易于导航:许多命令都绑定到导航。这便于四处移动。由于移动是区域定义的两倍,因此使操作命令(操作员)更强大。
人体工程学还支持模态编辑。它不模仿vi,但对最常用的命令使用Alt键。例如,移动光标是Alt键加上右手倒T。(在QWERTY它是Alt+ j为left,Alt+ l为右,Alt+ i为up和Alt+ k为down)。删除字符或单词是Alt用左手的home-row键。键的选择基于命令的频率和键的位置,以便于按下。
除了传统的模态范例外,还有一种准模态范例,它允许在不使用任何修饰符(例如上帝模式)的情况下实现任何C-x
或C-c
键的组合。
C-c
使用控制键按下并且QWERTY apps d的C-x
。 除了更改命令键之外,ergoemacs-mode还允许您在键入命令时更改有关键序列的内容:
ergoemacs-mode还尝试尊重该模式对基本键所做的任何事情。例如,如果org-mode为定义了特殊键next-line
,则ergoemacs 在处于org-mode时将此命令用于Alt+ k。
优点:
C-o
),关闭(C-w
),选择所有(C-a
),复制(C-c
),剪切(C-x
),粘贴(C-v
)等。缺点:
另一个半模态选项是Hydra:
https://github.com/abo-abo/hydra
根据网站
想象一下,您已经在配置中绑定了Cc j和Cc k。您想以某些(任意)顺序调用Cc j和Cc k。九头蛇允许您:
以按Cc jjkk3j5k等同于按Cc j Cc j Cc k Cc k M-3 Cc j M-5 Cc k的方式绑定功能。除j或k以外的任何键都将退出此状态。
为这组功能分配一个自定义提示,以便在按Cc键后立即知道可以跟上j或k。
我没有用过,但看起来很有趣。