19

の「通常の」状態ではevil-mode、カーソルの動きは vim の標準的な動作をエミュレートしています。次の 2 つの方法で、標準的な emacs の動作に近づけたいと考えています。

  1. 論理的な線ではなく、視覚的な線の中で垂直方向の動きが起こるようにしたいです。つまり、行が折り返されている場合、jまたはを押す<down>と、同じ行の次の部分に移動する必要があります。

  2. 横移動が改行で止まらないようにしたい。つまり、カーソルが行末にある場合、lまたは<right>を押すと次の行に移動します。

どうすればこれを達成できますか?

4

4 に答える 4

5

リマップ ソリューションでは、「dj」のような組み合わせが失敗します。以下のアドバイスの解決策は、「dj」の正しい動作を維持します。

(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)
于 2015-09-18T20:20:15.490 に答える