EmacsがRubyに差し込むMagic Commentを一掃する

  • 9
    いいね
  • 0
    コメント

Ruby2.0以降.rbファイルのデフォルトのエンコーディングがutf-8になったので以下のようなマジックコメントはいらなくなりました。

user.rb
# -- coding: utf-8 -*-
class User < ActiveRecord::Base
  # ...
end

まずEmacs側で再発するのを防ぎます。
Emacsのruby-modeでマジックコメントの自動挿入を停止する - Qiita

init.el
(custom-set-variables
 '(ruby-insert-encoding-magic-comment nil))

次に既存のコードベースを綺麗にします。
sedで掃除をしようとすると、改行を取り除く構文がしんどいのでPerlを使いました。
Perl便利ですね。

find . -type d ( -name "vendor" -o -name "tmp" -o -name "public" )\
 -prune -o -type f -name '.rb' | xargs perl -pi -e "s/# -\- coding: utf-8 -*-\n//g"

こんな感じで一掃しました。Rubocopにも設定を加えておくとなお良い。
これでautocorrectも効くようになる。

.rubocop.yml
  Style/Encoding:
    Enabled: true
    EnforcedStyle: never