10

私は悪を使います

(defcustom evil-shift-width 4
  "The offset used by \\<evil-normal-state-map>\\[evil-shift-right] \
and \\[evil-shift-left]."
  :type 'integer
  :group 'evil)

evil-shift-widthをbuffer-localインデント幅(変数)に設定したいと思いますindent

(add-hook 'after-change-major-mode-hook
      (function (lambda ()
                  (setq evil-shift-width indent))))

私は何を取りこぼしたか?

4

1 に答える 1

20

これ以上の情報がなければ、欲求がevil-shift-width4インチpython-modeと2ruby-modeインチ(2つの例)に設定されることであるという問題を理解していると思いますが、常に2に設定されています。

この場合の問題はindent、Emacsでグローバルに定義されておらず、確かにで定義されていないという事実に起因していpython-modeます。には4に設定されpython-modeた変数があり、それが使用する変数です。python-indent

主要なモードごとにカスタム変数を使用する必要があるのは面倒ですが、それが各モードが実際に使用するものであり、おそらく実際に機能するソリューションです。

(add-hook 'python-mode-hook
  (function (lambda ()
          (setq evil-shift-width python-indent))))
(add-hook 'ruby-mode-hook
  (function (lambda ()
          (setq evil-shift-width ruby-indent-level))))

サポートするメジャーモードごとに新しいものを追加します。

于 2011-12-19T23:55:49.613 に答える