[请教] 无法适应Doom emacs的evil 模式,有人能介绍一下evil的优点好处和技巧吗?

我本身一直是使用Emacs的原生key-binding,鉴于很多IDE对emacs-keybinding支持并不友好,所以想考虑切换到vim的模式,于是打开了doom的evil模式,用了几周,实在不习惯,在insert模式下,经常想用ctl+n/f换行,esc也不好按,ctl+g 经常也无法退出insert模式。 就想问问大家evil用得很6️⃣的大佬们,都是如何操作的

evil 是给习惯 vim 操作方式的人准备的,你既然没这操作习惯,干嘛非要改呢。适应过程是很痛苦的。

1 个赞

主要是很多IDE对emacs keybinding并不友好,我想试试 vim的操作方式,毕竟使用的人还挺多的。

每编辑一下,就退出insert模式,来移动光标,我也挺好奇,大家都是怎么做这样的操作的。

习惯了就好了

1 个赞

退出insert模式是用Ctl+g 还是用Esc呢,Esc有换键位吗?

不如试试本坛老哥开发的Meow

1 个赞

其实,如果你熟练适应 emacs 原生快捷键也挺高效的。 但是 emacs 基于 modifier 去分类操作的方式常年累月地使用,可能会比较伤害手指。

推而广之,你可能会想探讨为什么模态,去 modifier 会更好?

就还是解决不了,在其他IDE或者编辑环境中的key-binding不适应的问题,如果是单纯的在Emacs中,原生key-binding,我其实用得还挺顺手的。

对我确实挺好奇,为什么模态,我最初使用Emacs,很一部分原因是,不喜欢Vim的模态。

是,我刚注意到你替换的动力是ide里面没有合适的按键绑定。但我印象里ide中的vim绑定也就那么回事,也并没有很契合。

所以摆脱IDE才是症结所在 :rofl:

你去看下 vim/neovim的文档,尝试使用 vim ,体验一下,满足你的好奇心,最后你就知道是否适合你了 :smile:

其实其他编辑器也可以实现 emacs 按键,实在没有就用键盘模拟软件,我整个操作系统都是 emacs 按键。

1 个赞

快速的按 j k,对应的函数是 evil-escape,但 doom emacs 对某些场景设置了 还要用 C-g 或 esc , 我的习惯是再用 key-chord 绑定 f d 到 evil-escape, 想退出,先按 j k,不行再按 f d,这样就不需要按 esc 了;control 也可以不用按,按 spc

我是直接系统层面把 esc 和 caps 对换的,因为我 caps 按的比较少。

习惯了 emacs 原始键位以后,有时候只是想移动一两次光标的话,确实觉得还要回到 normal 模式比较麻烦。你可以直接在 insert 模式下绑定 C-f, C-n 这种快捷键, 让它们和 emacs 原始键位相同,我就是这样子的。

vim用到小手指的操作很少,其一因为normal mode下面几乎所有操作都只需要字母和数字键就行。

其二vim的组合键和emacs是两种风格,emacs一般是Ctrl,Alt等开头的组合键,vim倾向于用key sequence,也就是单个按键的连按,这两种效率我感觉差不多,区别就是vim的组合键基本没有Ctrl,Alt这种可能需要小拇指去勾的。。。

vim初学者可能会觉得在insert 和normal模式之间切换很烦,我建议使用evil-escape这个包,并且把escape按键设置为"jk"也就是j k 连按,evil-escape甚至可以用来退出mini-buffer,各种special mode的buffer。

2 个赞

evil 是给 vim 转 emacs 的用户使用的,你已经习惯了 emacs 的原生操作,就没必要再去适应 vim 操作了

3 个赞

evil 是给晢時不想转 emacs 原生按键的人用的。 Emacs 想转 vi 的话建议用 Emacs 自带的 viper,可以设定 migration level。viper 本來是给想转到 emacs 原生按键的人用的,反过来用其实也可以。

实际上別的 IDE 的 vi 模拟也不比 viper 强多少。

4 个赞

我caps键 已经跟Ctl 换了

嗯,有道理,挺了大家的意见,我觉得我没必要用evil。

我的经验是vi快捷键学完官方教程后必须坚持使用两个礼拜。没有两个礼拜的经验去做判断有点过早。

2 个赞