Evil-mode 禁止Visual mode下的:w

有的时候一不留神就在visual-mode就把运行:w, 然后面对一个简单的y-or-n, 惯性直接按了y, 就惨了, 只留下下了不小心selected的一点。

不知道有没有大神有类似的烦恼, 想问一个方案, 使得visual selected时不能直接:w 写入成功。

直接u撤销不行?

1 个赞

谢谢, 只要我不是;wq就行。 但我还是担心不留神:wq了,虽然就发生过一次.

evil-ex-execute 判断当前是否处于 visual 状态且读入的命令是否为 w/wa/wq/wqa…。

或在写入/保存函数执行前判断当前是否处于 visual 状态:

  • evil-write
  • evil-write-all
  • evil-save-and-close
  • evil-save-and-quit

这个问题其实在vim里面也一样存在吧。

另外,你把用vim的习惯带到Emacs里面了。我以前也这样,我的教训是:千万别这么想。Emacs就是Emacs,evil做得再好,说到底还是Emacs。想把vim的所有特性和个人习惯都带到Emacs里要付出很大代价,得不偿失。

:wq这个习惯最好改改。实在不行就把相应的命令给暂时干掉。肌肉记忆其实很容易改。

对于我们用vim按键的用户,我觉得在Emacs里还是用yes/no,别用y/n。后者太容易导致误操作了。

VIM会返回“E140 部分写入”, 并要求必须重新加!, 比直接y-or-n 明确太多。

不过你说对了一点, 我进入Emacs确实是奔着更好的vim来的 :joy:, 期待更细致的调教,奈何自己elisp桶底水。

慢慢来嘛。先把y-or-n关掉吧,免得手快。