evil or 原生键位?

我是用 xcape 把 capslock 同时映射成 esc 和 ctrl: 轻按是 esc, 按住同时再按其他键就是 ctrl. 反正 emacs 里也不存在需要单按 ctrl 的操作. 可以说是 combine the good of two worlds 了.

我用evil 但是在插入模式下会用emacs原生的C-f C-b 以及evil的C-[退出插入模式

我用的meow,感觉很不错。甚至有点想把我的neovim配置成meow的样子(但是完全不知道怎么做)。

meow最吸引我的就是宏了,跟录制宏不一样,它更接近于multi cursor。而且select后直接操作的思想比先切换到三种visulal模式之一再选取文本块进行操作要少一步,感觉上会顺畅不少。

尤其是多行修改的时候,(我的vim没有multi cursor的插件)我习惯用宏录制下来一行的操作然后再播放。这时后就会有个问题,我需要同时思考我的操作是否可以在每一行都能兼容。有些操作在不同行会造成非预期的效果,然后我就得重新录制宏了,老实说蛮讨厌的。

但是meow就没有这个烦恼了,我可以先选取相同的文本对象然后立刻复制操作,不用思考一系列操作对行造成的影响。

Meow 的牛逼的特性可以录制 gif 不? 一直没有搞明白它的优势

我现在默认是insert模式,用的emacs原生键位

但是按下esc后会进入meow normal mode进行移动。

meow的移动和选择一体的思路(大概)在移动光标上很舒服,移动和删改一起进行。插入时不用来回切换模式,用原生键位进行小操作(大概是我没养成用i的习惯)

有些奇怪,但是我觉得挺舒服的()

这里 The answer from Meow, 文档里有gif, vscode的这个插件 oomotion_vscode,同样厉害,光标所在位置即是选中,尽管不能和其他编辑器的复制粘贴模式一样,但是真的牛逼。

嗯, 感觉 Meow 把键盘宏发挥到极致, 比 multiple-cursors 厉害多了呀。

Meow 的优势我搞懂了, 就是根据灵活的规则(并不一定是 symbol ) 创建很多 fake cursor, 然后在任意一个 fake cursor 的位置做 kmacro 操作, 最后针对所有 fake cursor 来应用这些宏操作。

这样在一些重复编辑的场景就非常有生产力了。

但是我个人对模式切换没有兴趣, 也许我可以写一个新的插件去提取 Meow 中 “fake cursor + kmacro” 的操作, 而不需要学习各种模式的前提下提高重复编辑的生产力。

2 个赞

用原生键位。 一直觉得模式编辑在很多场景下体验不一致,会造成混乱。 比如一般编辑时可以切换到normal mode 移动,但是在minibuffer中编辑的时候又没法切换到normal mode,最后还是得用原生键位来移动

用的evil,之前尝试过各种其他方式,都很好用,阻碍我的原因是我主要做嵌入式产品,设备端的linux一般只内置vi,有时候在设备端修改文件或脚本需要vi的键位,emacs搞另一种键位很不统一就比较不适应

看来很多人都会纠结这个问题,听听 EmacsTalk 就能释怀了🫄

哈哈哈哈, 老板下期节目要不要来个 《vim vs emacs 客观分析互相学习》?

原生键位

除了13年刚从Vim转过来那会儿用过一段时间Evil,渐渐就放弃了,不知道为啥(虽然我Terminal中还是习惯随时开vim改config啥的,但Emacs中放弃Evil了) Vim的话我 jj

我在vim的插入模式里也使用emacs键位。而且bash/zsh/python啥的console都是自带emacs键位,使用起来其实很习惯。一般来说就是正在写新的东西的时候就emacs键位,修改/缝合已经存在的东西就用vim键位。其实实际编辑中绝大部分时候是修改/缝合已经存在的东西。

2 个赞

如果用 macOS 的话,Emacs 键位不要太香,只要是原生开发的 App 都支持,甚至还有隐藏选项可以打开系统级的 kill-ring。

自己舒服就好

自己喜欢就好。都有优点,都有局限性。最终都要自己根据需要修修补补。不要期待一劳永逸。需求各样,需求常在变。没有银弹即是。

2 个赞

花了2个小时, 已经把 Meow 这种 “fake cursor + kmacro” 的功能弄出来了, 比 iedit/multip-cursors/rect 这些插件好用。

我下楼做个核酸, 再来整理发布出来。

这个新的插件不需要学习模式转换, Emacs 原生按键就可以流畅使用, 而且学习门槛会很低, 基本就是绑定个按键就好了。

6 个赞