codingを入れないように

ruby-modeを使っていると、ファイルに保存するときに

# -*- coding: utf-8 -*-

っていうコメントが入ります。文字コードを自動で認識してくれるいいやつなんですが、プロジェクトでは他の人はemacs使ってないし、他のこのコメントが入ってないファイルも普通にutf-8で認識してくれているので、僕には不要なんですよね。

っていう訳で、これを出力しないようにしようと思って /Applications/Emacs.app/Contents/Resources/site-lisp/ruby-mode.el をみてみました。関係してるっぽいのはこの辺。

(defun ruby-mode-set-encoding ()
  (save-excursion
    (widen)
    (goto-char (point-min))
    (when (re-search-forward "[^\0-\177]" nil t)
      (goto-char (point-min))
      (let ((coding-system
	     (or coding-system-for-write
		 buffer-file-coding-system)))
	(if coding-system
	    (setq coding-system
		  (or (coding-system-get coding-system 'mime-charset)
		      (coding-system-change-eol-conversion coding-system nil))))
	(setq coding-system
	      (if coding-system
		  (symbol-name
		   (or (and ruby-use-encoding-map
			    (cdr (assq coding-system ruby-encoding-map)))
		       coding-system))
		"ascii-8bit"))
	(if (looking-at "^#![^\n]*ruby") (beginning-of-line 2))
	(cond ((looking-at "\\s *#.*-\*-\\s *\\(en\\)?coding\\s *:\\s *\\([-a-z0-9_]*\\)\\s *\\(;\\|-\*-\\)")
	       (unless (string= (match-string 2) coding-system)
		 (goto-char (match-beginning 2))
		 (delete-region (point) (match-end 2))
		 (and (looking-at "-\*-")
		      (let ((n (skip-chars-backward " ")))
			(cond ((= n 0) (insert "  ") (backward-char))
			      ((= n -1) (insert " "))
			      ((forward-char)))))
		 (insert coding-system)))
	      ((looking-at "\\s *#.*coding\\s *[:=]"))
	      (t (insert "# -*- coding: " coding-system " -*-\n"))
	      )))))
  (add-hook
   (cond ((boundp 'before-save-hook)
	  (make-local-variable 'before-save-hook)
	  'before-save-hook)
	 ((boundp 'write-contents-functions) 'write-contents-functions)
	 ((boundp 'write-contents-hooks) 'write-contents-hooks))
   'ruby-mode-set-encoding)

僕のつたないelispの知識を総動員した結果、ruby-mode-set-encodingの最後のinsertを呼び出さない設定はできない、と判断しました。本当か?


じゃあ、もうruby-mode-set-encodingを無効にしちゃいなよ、というわけで勘で下のコードを.emacsに追加してみた。defunで上書きしたいので、ruby-modeを先にロードしないとダメー。

(require 'ruby-mode)
(defun ruby-mode-set-encoding () ())

一応、これでcodingは出なくなりました。しかし、これじゃないような気がしてます。