- vim
- emacs
- hybrid
0 投票者
最好能说明一下你为什么选择这种模式
我是 3 hybrid,因为我开始时是 emacs 用户,后来接触了 evil,开始学习 vim 的快捷键。属于两种都能用,但两种都不精的类型 ,所以最后选的 hybrid 杂交模式。
0 投票者
最好能说明一下你为什么选择这种模式
我是 3 hybrid,因为我开始时是 emacs 用户,后来接触了 evil,开始学习 vim 的快捷键。属于两种都能用,但两种都不精的类型 ,所以最后选的 hybrid 杂交模式。
Vim + Emacs: (defalias 'evil-insert-state 'evil-emacs-state)
是 Spacemacs
为什么不用hybrid?这个和hybrid有什么不一样吗?
hybrid 没尝试过,我的做法就是用 emacs-state 充当 insert-state,就是你在 vim 模式下按 i/a/c 或者 caw 之类的是跳到 emacs-state
建议你尝试一下 hybrid 模式,就是你说的效果,但是各方面更完善。因为是官方的,consistency 更好
嗯,我试一下
前Vim党。主力肯定是Vim模式。基本上已经习惯部分Ctrl+* 这种键了。毕竟不是所有时候Vim模式都可用。
最开始的时候,一旦Vim模式失败很抓狂。
因为是官方的,做了很多优化,具体的情况你可以查看一下 spacemacs 的 issue 列表,搜 hybrid,里面回复最多的一个应该就是了。
我觉得最主要是一致性。而按键方面有专门的 hybrid-map 供你使用。
hybrid style 应该就是把 evil-insert-mode 别名成 emacs-state,另外有一个独立的 keymap
不过发现 hybrid style 没有类似 emacs-state 的 evil-exit-hybrid-state
,可以自己加一个:
(with-eval-after-load 'evil-commands
(evil-define-command evil-exit-hybrid-state (&optional buffer message)
"Exit Hybrid state.
Changes the state to the previous state, or to Normal state
if the previous state was Hybrid state."
:keep-visual t
:suppress-operator t
(interactive '(nil t))
(with-current-buffer (or buffer (current-buffer))
(when (evil-hybrid-state-p)
(evil-change-to-previous-state buffer message)
(when (evil-hybrid-state-p)
(evil-normal-state (and message 1)))))))
这个是做什么用的?
从 hybrid-state 切换为先前的 state,如果不存在先前的 state 就退化为切换到 evil-normal-state
先前 state 是指?
比如你之前是从 normal-state 切到当前的 hybrid-state 的,那么这个函数就是切换回 normal-state; 你之前是从 motion-state 切换到当前的 hybrid-state 的,那么这个函数就是切换回 motion-state,等等
我一直 normal 和 motion 傻傻分不清楚 ,能解释一下吗?
好吧,我 Google 了一下,找到这个:
貌似 motion 的作用只是限移动,没有编辑命令?比如在 help buffer?
是的,helper buffer, spacemacs buffer 都是 motion-state,光标是紫色的;
我这个例子举得不太好
没有关系,讨论问题就是这样的。我也从你的回复中学到了 motion-state 和 normal-state 的区别,感谢。