evil-mode中,处于insert mode,光标如何移动到上/下一行。来模拟emacs很easy的<C n><C p>

RT

我在doom emacs的insert mode中执行会提示:No dynamic expansion for xxx found.

如果用M-x previous-line的快捷键<Up>或者<Down>,感觉不是很evil。。

找了个方案,不知道是不是最理想的?

大佬们一般都是怎么操作的

直接把vim insert mode下的C-n C-p改成上和下。。。vim默认的C-n和C-p的作用是手动唤出补全窗口,如果用自动补全的话,这个就一点用都没有,完全可以无视掉。 我在使用vim的时候,插入模式下我也是使用emacs/bash的那一套快捷键 C-bpfnaehk

1 个赞

嗯嗯,感觉也可以。Nice!

比较好奇,vimer是不是都是<Control o>操作的 :smiling_imp:

vimmer都是直接退出到normal-mode移动光标的吧,吧ESC映射到CapsLock上面或者用jk连按代替ESC

1 个赞

我是设置了系统全局的空格键右边按键+hjkl来模拟箭头按键。目前用了大概一年多了,很爽,在所有 app 里都通用。因为我的 Emacs 快捷键都是有 leader key 的,所以没有遇到特别致命的按键冲突。

1 个赞

用 Spacemacs 的 Hybrid Mode

2 个赞

我是用vi模式进行代码浏览;当进入插入模式时,设置其使用emacs编辑方式。

1 个赞

C-o基本不用。一般而言超过三行的移动就换normal模式。一两行内的就用C-bpfnaehk M-blfnaehk啥的来解决。然后如果要一次性修改大段文字,批量重复修改文字啥的,都切到插入模式解决。把jk映射成esc,习惯成自然,养成肌肉记忆不会觉得来回切模式很麻烦的。

1 个赞

划分两个状态,一个normal下用vim的快捷键,insert下用emacs的快捷键

  (setq evil-disable-insert-state-bindings t)
2 个赞

嗯嗯,通用的是ESC,然后移动。另外Vim实用技巧上也有一个方法

// 第77页
// 技巧14 返回普通模式

;; emacs.d/init-evil.el at 8ea127c69cd6e5d6dbbe2c1dce91131c4a4c0cd2 · redguardtoo/emacs.d · GitHub

;; Press kj to escape from evil-insert-state and everything else in Emacs. It’s much more efficient than ESC in Vim or C-g in Emacs

 (after! evil-escape
   (setq-default evil-escape-delay 0.3)
   (setq evil-escape-excluded-major-modes '(dired-mode))
   (delete 'visual evil-escape-excluded-states)
   (setq-default evil-escape-key-sequence "kj"))

你那些都太复杂了 快速返回 normal 才是王道 从陈斌那学的

2 个赞