在evil-mode的“正常”状态下,光标的移动是在模拟vim的标准行为。我希望通过以下两种方式使其更类似于标准emacs行为。
j或<down>应该移动到同一行的下一部分。l或<right>就应该移动到下一行。我怎样才能做到这一点?
发布于 2014-01-03 08:20:44
我找到了解决问题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)发布于 2015-09-18 20:20:15
重新映射解决方案将使dj' like combinations fail. Below advice solution still keeps right behavior fordj':
(defun evil-next-line--check-visual-line-mode (orig-fun &rest args)
(if visual-line-mode
(apply 'evil-next-visual-line args)
(apply orig-fun args)))
(advice-add 'evil-next-line :around 'evil-next-line--check-visual-line-mode)
(defun evil-previous-line--check-visual-line-mode (orig-fun &rest args)
(if visual-line-mode
(apply 'evil-previous-visual-line args)
(apply orig-fun args)))
(advice-add 'evil-previous-line :around 'evil-previous-line--check-visual-line-mode)发布于 2014-01-02 18:56:31
我似乎不能正确地行动起来。C-h k l说right-char。
;; kill two birds with one stone using remap: arrow keys and h,j,k,l
(define-key evil-normal-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)
(define-key evil-motion-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-normal-state-map (kbd "<remap> <evil-backward-char>") 'left-char)
(define-key evil-motion-state-map (kbd "<remap> <evil-forward-char>") 'right-char)
(define-key evil-normal-state-map (kbd "<remap> <evil-backward-char>") 'left-char)
(define-key evil-motion-state-map (kbd "<remap> <evil-forward-char>") 'right-char)https://stackoverflow.com/questions/20882935
复制相似问题