个人关于光标高效移动的总结

emacs配合evil之后,移动的按键有点多,总结了一下。
只选取一种最容易按的方式,习惯之后还是很高效的
具体可以看我的配置 https://github.com/heheda123123/emacs.d/blob/main/init.el

光标移动总结,基于不同单位进行移动
字符移动 h j k l
单词移动 w e b W E B
行内移动 M-a M-e f ;
段落移动 n m %
屏幕移动 H M L
全文移动 ,ss * gg G C-d C-u
项目移动 ,qq ,md ,mr C-o C-i

一些说明

行内移动 M-a M-e     效果等同于0和^,但是^不好按,改成这个更方便
段落移动 n m           效果等同于emacs原本的M-a M-e,改成这个更顺手
段落移动 %          使用了evil-matchit
全文移动 ,ss          就是consult-line
全文移动 C-u      改为了vim的C-u效果,emacs的C-u我自己基本不用
项目移动 ,qq        就是consult-ripgrep
项目移动 ,md ,mr        就是lsp-bridge-find-def lsp-bridge-find-references
另外虽然我配置里有avy,但是用起来总有种突兀的感觉,平时基本不会用这个,用 ,ss 可以替代

平时用起来已经很流畅了,不知道大家有没有什么补充的

3 个赞

vim还是得搞个vim cheat sheet有空时看看 https://vim.rtorr.com/

我是用的doom 除了提到的以外比较常用的

  • C-y, C-e: 上下滚动但是光标不离开当前行,方便看完屏幕边缘的内容继续编辑
  • zz, zb, zt: 对应的是 evil-scroll-line-to-<center,bottom,top> command, 鼠标不离开当前行并把这一行放到屏幕中间,最低,最顶
  • C-o: better-jumper-jump-backward command,跳回上一次光标所在位置。蛮好用的,看完其他位置的信息,复制了某些东西,然后一路C-o回来继续操作
  • 其他跳转就是各种search, search buffer, search project, search directory

感觉有时一些高效的移动还是没有形成肌肉记忆,还是会一直按hjkl, 其实easy-motion,avy什么的也都看过,但集中精力再想问题时就不会用肌肉记忆以外的按键

2 个赞

以前doom的discord server有一个doom tips频道(貌似是这个名字),里面巨多巨好用的小技巧,但是频道被关闭了,说是会移动到doom的discourse里面,但至少我上次去看搜索了一下并没有

如果是单纯光标移动的话,vim有个easymotion插件你可以了解一下。

emacs中具体对应哪一个插件我不知道(我是新手),但是陈斌配置里有个命令函数ace-pinyin-jump-char可以起到同样的效果(英文或汉语拼音都行)。

vim里的easymotion就是我前面提到的avy哈,感觉用这个插件会打断思路所以我基本不用,而且用consult-line也能达到同样的效果