auto-complete環境で補完の大文字小文字を区別する

  • 22
    Like
  • 0
    Comment
More than 1 year has passed since last update.

全国100万人のEmacs・ニュービーのみなさまこんばんは。

みなみなさまもauto-completeを使って快適な補完ライフを享受されてることと存じます。

しかしRailsなんかでごりごりごりっとコードを書いてますと、Bookだったりbookだったりbooksだったりと、大文字小文字が入り乱れるコードになります。そんな環境では、小文字で出して欲しかったのに大文字が補完されたりして、たいへん不快な目に遭ひます。

この記事を参照、ではあるのですが、リンク先当時と違っていまのデフォルトは'smartです。

つまり、デフォルト値の定義はこんなふうになってます。

auto-complete.el
(defcustom ac-ignore-case 'smart
  "Non-nil means auto-complete ignores case.
If this value is `smart', auto-complete ignores case only when
a prefix doen't contain any upper case letters."
  :type '(choice (const :tag "Yes" t)
                 (const :tag "Smart" smart)
                 (const :tag "No" nil))
  :group 'auto-complete)

てなわけで、全体でこの挙動をnilにしてやりたければ、.emacsにこんなふうに書いてやればおkですね。

.emacs.d/init.el
(custom-set-valiables
 '(ac-ignore-case nil))

「Rubyでは無効にしたい… でも全体では'smartのままがいい…」なんてわがままさんもいらっしゃいますよね。僕のことなんですけれども。

そんな方にはこちら!

.emacs.d/conf/init-ruby.el
(add-hook 'ruby-mode-hook
          (lambda ()
            (make-local-variable 'ac-ignore-case)
            (setq ac-ignore-case nil)))

いえい。これでruby-modeなバッファでだけac-ignore-casenilになってくれます。めでたいですね。