vim在编辑的理念上非常地强大,emacs中也有evil以及相关的evil-collections来模仿vim的编辑方式。体验确实非常爽。
然而在自己攒配置时,evil引入的复杂度却又带来了一些不便,最直接的感受就是绑定按键时,需要额外考虑在不同state下的键位;有时部分的emacs内置键位与vim命令冲突,也需要自己习惯。要系统性的管理,似乎也就只有general.el
能总体统筹了。
萌生了抛弃evil,纯粹使用emacs原生的键位的想法后,有这么几个问题还不知道如何替代:
- leader key。从最初使用spacemacs与doom时就习惯了空格作为leader key,以及local leader的概念。原生键位下,空格就是输入空格,那leader key用什么呢?
- visual block在emacs下有平替吗?
-
set-mark
在C-SPC
有些尴尬,与输入法会产生冲突,安排给什么按键好呢?
相关的问题可能还不少,抛砖引玉,向大家取取经。
2 个赞
我用 emacs 按键有快两年了,最开始用了2个月的 vim 按键。
- 默认键位不需要 leader key
- 不清楚
- 用 shift 来切换输入法,C-SPC 用来 set-mark,看到有大佬用 C-. 来set-mark
evil + hydra 键绑定,
创建一个 主 hydra 提示绑定(空格键),其余全部使用 子 hydra 绑定
1 个赞
不用leader key的话,默认键位Ctrl键就按的实在太多了,自己定义个啥都得往C-c
上面绑,有些臃肿。
我只在 normal 模式定义空格为所有插件源头键绑定,i 模式我都是用 M-x 函数触发的,或者使用 key-chord
我目前也是如此,leader key在normal/visual state下是空格,insert state下是..
(两个句号)的key-chord。
默认按键不应该惧怕 Ctrl,我反而喜欢用 Ctrl。
你可以尝试下使用机械键盘,手指正好自然落在 asdf这四个按键时,小指根本的肌肉正好触碰到 Ctrl 按键。用个几天就会喜欢使用手掌去压Ctrl,然后你会感觉不到 Ctrl 的存在,同时也不会手指痛。
但在 macBook 上,我也不用机械键盘,直接用大拇指去按 Ctrl 和 Alt
1 个赞
我在两三个月前转到了 Emacs按键上,目前使用的还可以。我在 C-c 上绑定了很多,用起来也没什么问题,感觉还好。
绑定的还算有规律,也不用担心记不住。
欢迎回归Emacs原生键位。切换输入法换一个快捷键好得多
3 个赞
感觉原生键位非常快,用evil的时候总感觉有点笨重,不知道是不是错觉。我在远程的机器上,如果是原生的emacs,启动很快,如果是加载了evil的配置,就会非常慢。当然机器本身很一般。
我曾经一直纠结键位问题,结果换来换去导致我现在可以在Emacs和Vim键位无缝切换了。
同样也是左Shift切换输入法,感觉这比C-Space要快,省力。另外Emacs的原生键位是可以代替Visual Block模式的
能够无缝切换个人觉得是正解!选择最适合,或者说最直觉的操作才是最优的键盘操作!
我的文章 How to be extremely efficient in Emacs | Chen's blog 说明了最常用的命令也就20几个. 用general.el
, hydra
对这几个常用的命令设置优化的快捷键就行了.
不常用的命令我一般就用原生的快捷键,或直接输入命令
输入法我用pyim. 切换输入法快捷键我统一用general.el
设置为,/
,无论evil的state是什么或evil是否使用,具体分析见Vim和中文输入法的完美结合 - 知乎 . 实际上关闭pyim输入法的快捷键是/
,但我还是按,/
即使逗号不需要按. 可以在pyim-mode-map
中设置.
所以关键还是要分析自己的工作流, 搞清楚最常用的命令是什么. 不常用的命令就顺其自然好了.
6 个赞
从evil切到原生键位快一年了,我的方案是掌压Ctrl,C-c 作local leader,绑不同的mode map。global leader我是绑到C-,,这样就不会发生冲突,能绑的键也多一点。不用切换state是真的舒服
1 个赞
利用key-chord把双击空格作为leader key是否可行?另外,emacs似乎没有“长按”的概念,如果可以的话,其实长按空格也是个不错的选项。
用了which-key
和hydra
一切都变得简单了
用原生的话是不可能避开ctrl键的, 我觉得空格按多了比ctrl还累
1 个赞
limon
21
vim 里我习惯 leader key 用逗号,因为打逗号正常都会带空格,非空格就是快捷键