使用 vim 或 evil 时,在邻近的两行、多行或单行中的多处修改后,总感觉 Esc 退出插入模式后移动光标比较麻烦。这时我一般会用 Emacs 的光标移动操作。
请教,Vimer 对上面描述的情形时有什么妙招?使用 Evil 的 Emacser 呢?
使用 vim 或 evil 时,在邻近的两行、多行或单行中的多处修改后,总感觉 Esc 退出插入模式后移动光标比较麻烦。这时我一般会用 Emacs 的光标移动操作。
请教,Vimer 对上面描述的情形时有什么妙招?使用 Evil 的 Emacser 呢?
配置 jj 进入 normal 模式。evil 的话还可以保留 insert 模式下 emacs 一些移动光标的基本快捷键。不过我的感觉就是总是不如 emacs 单一模式来得顺手
如果是最近3行内的移动,我也是直接使用emacs的移动,这个叫做hybrid-mode, 在insert mode下面全部使用emacs快捷键,当阅读代码的时候进入normal mode + spacemacs leader navigation. 毕竟读代码的时间比写代码长,所以我觉得vim这种不伤身的按键方式更适合我。
改键,windows里有个touchcursor,是用space+hjkl改成方向键的,我虽然不用这个软件,但啥系统都改成这种快捷键的。
读代码多的人喜欢 vim 模式, 写代码多的人喜欢原生模式, 对于天天写代码的人, 来回切换模式很麻烦。
当时比较抗拒vim但又小指痛(19年刚入坑emacs那会了好像是)于是配置过只在只读模式下用evil键位,但是效果还是不尽如人意,因为在使用时有一种很强的感觉:我还是在用evil,只是将切换模式的键从esc或者ctrl加[换到ctrl加q了。
后来一直用doom,现在已经没有办法离开evil了
我不知道是不是我一个人这个习惯,我一直都在用无名指按,从来不用小拇指
我也不习惯用小拇指,小拇指力量小,不适合太重的活。小拇指只用来按 Shift ,Capslock, z 键和 a 键。Ctrl键用小拇指根部的手掌来按,或者用大拇指按。
C-o 进入临时 Normal 模式?
左 ALT 设置成按住不放时还是 alt, 单次敲击则是 ESC,按 esc 和按空格的感觉类似。
同一行如果是相邻 word 之间的跳转,esc 跳出再按 w/b 之类的 textobj 相关命令
同一行稍微远一点或者不在 textobj 边界的用 evil-snipe-f
再远一点的,在可视范围内用 avy,比如绑定f3就不用退出 evil insert 直接跳转
但个人还是习惯先 esc 到 normal mode, 然后大部分场景是 snipe 或 avy(一个是对默认 f/F 的增强 另一个改成原生 evil 用的比较少的单次按键, 比如 ; \ s q 都可以考虑) 所以只需要习惯两个按键就可以处理大部分跳转,而且这两个都支持中文拼音首字母。 (如果编辑代码,还可以加上比如 % 跳转括号)
一两行的小范围移动就用emacs style的C-bpfn好了,大范围的移动再用vim模式。另外在插入模式下,C-u是emacs的C-k的相反方向的删除,C-w是删除一个单词。
你有没有交换 CAPSLOCK 和 CTRL ?
看起来这个功能在 emacs/vim 底下可以不用其他软件直接实现
没有,正常键盘+无名指按ctrl
我是用 Karabiner 把 Mac 键盘的右 Command + hjkl 绑定成方向键了。 在 insert mode 很好用。
而且我这个绑定是全局的,目前感觉很方便,哪里都能用 hjkl 几乎不用思考(偶尔会忘了按 Command)。
其实也还好,习惯了也改不太过来。
比较喜欢这个,C-o在vim下用的挺多
我个人这种情况还是喜欢用 esc 来处理。因为 undo 时可以只回退一部分的修改。肌肉记忆后也没觉得很麻烦。而且是两三行内的这种经常会是比较有规律的,都拿宏或者 repeat 来完成了。
原生evil没用过,对于vim如果临近行重复修改可以研究一下.;,