抛弃vim(evil),重投emacs默认快捷键?

vim在编辑的理念上非常地强大,emacs中也有evil以及相关的evil-collections来模仿vim的编辑方式。体验确实非常爽。

然而在自己攒配置时,evil引入的复杂度却又带来了一些不便,最直接的感受就是绑定按键时,需要额外考虑在不同state下的键位;有时部分的emacs内置键位与vim命令冲突,也需要自己习惯。要系统性的管理,似乎也就只有general.el能总体统筹了。

萌生了抛弃evil,纯粹使用emacs原生的键位的想法后,有这么几个问题还不知道如何替代:

  1. leader key。从最初使用spacemacs与doom时就习惯了空格作为leader key,以及local leader的概念。原生键位下,空格就是输入空格,那leader key用什么呢?
  2. visual block在emacs下有平替吗?
  3. set-markC-SPC有些尴尬,与输入法会产生冲突,安排给什么按键好呢?

相关的问题可能还不少,抛砖引玉,向大家取取经。

1 个赞

我用 emacs 按键有快两年了,最开始用了2个月的 vim 按键。

  1. 默认键位不需要 leader key
  2. 不清楚
  3. 用 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 个赞

使用原生会让小手指痛,使用meow比较爽。

从evil切到原生键位快一年了,我的方案是掌压Ctrl,C-c 作local leader,绑不同的mode map。global leader我是绑到C-,,这样就不会发生冲突,能绑的键也多一点。不用切换state是真的舒服

利用key-chord把双击空格作为leader key是否可行?另外,emacs似乎没有“长按”的概念,如果可以的话,其实长按空格也是个不错的选项。

用了which-keyhydra一切都变得简单了

用原生的话是不可能避开ctrl键的, 我觉得空格按多了比ctrl还累

1 个赞

vim 里我习惯 leader key 用逗号,因为打逗号正常都会带空格,非空格就是快捷键