在"正常"状态下evil-mode
,光标移动模拟了vim的标准行为.我希望通过以下两种方式使其更类似于标准的emacs行为.
我希望垂直运动发生在视觉线内,而不是逻辑线.即如果一条线被包裹,按下j
或
应该移动到同一条线的下一部分.
我希望水平移动不会停留在换行符上.即如果光标位于一行的末尾,则按l
或
应移至下一行.
我怎样才能做到这一点?
我找到了如何解决问题2:事实证明有一个变量evil-cross-lines
.设置此项以t
简单地解决该问题.
结合PythonNut的垂直移动修复,这里有完整的解决方案:
;; Make movement keys work like they should (define-key evil-normal-state-map (kbd "<remap> <evil-next-line>") 'evil-next-visual-line) (define-key evil-normal-state-map (kbd "<remap> <evil-previous-line>") 'evil-previous-visual-line) (define-key evil-motion-state-map (kbd "<remap> <evil-next-line>") 'evil-next-visual-line) (define-key evil-motion-state-map (kbd "<remap> <evil-previous-line>") 'evil-previous-visual-line) ; Make horizontal movement cross lines (setq-default evil-cross-lines t)