Emacs で csharp-mode(やっとできた
EmacsでC#を書くときに、「csharp-mode」があれば大変便利なのですが、これまで何度となく導入に失敗していました。
最近「.emacs」の見直しをやっていて、さらにEmacsでC#を書く機会があったので、もう一度導入してみました。そしたらうまくできた!というあれです。Mac OS X 10.6.3 での導入メモ。
csharp-mode.el をゲットする
Google Code に「csharpmode」というプロジェクトがあるので、ここのDownloadsからcsharp-mode.elを貰ってきます。最新版は「csharo-mode-0.7.6.el」。
csharp-mode.el を置く
ダウンロードしたmodeファイルを「/usr/share/emacs/site-lisp」に起きました(これは環境依存か...)。
但しファイル名を「csharp-mode-0.7.6.el」から「csharp-mode.el」に変更しておきます。
.emacs を編集
csharp-mode.el をロードするコードを「~/.emacs」に記述します(EmacsWiki: CSharp Modeを参考に)。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; C# support ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (autoload 'csharp-mode "csharp-mode" "Major mode for editing C# code." t) (setq auto-mode-alist (cons '("\\.cs$" . csharp-mode) auto-mode-alist)) ;; Patterns for finding Microsoft C# compiler error messages: (require 'compile) (push '("^\\(.*\\)(\\([0-9]+\\),\\([0-9]+\\)): error" 1 2 3 2) compilation-error-regexp-alist) (push '("^\\(.*\\)(\\([0-9]+\\),\\([0-9]+\\)): warning" 1 2 3 1) compilation-error-regexp-alist) ;; Patterns for defining blocks to hide/show: (push '(csharp-mode "\\(^\\s *#\\s *region\\b\\)\\|{" "\\(^\\s *#\\s *endregion\\b\\)\\|}" "/[*/]" nil hs-c-like-adjust-block-beginning) hs-special-modes-alist)
これをコピペ。
ちなみに、現在の私の「.emacs」
こういうのあるよ、とか教えていただけると幸いです。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; load site-lisp directory ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (setq load-path (append (list (expand-file-name "/usr/share/emacs/site-lisp")) load-path)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; emphasize current line ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defface hlline-face '((((class color) (background dark)) (:background "dark slate gray")) (((class color) (background light)) (:background "SkyBlue")) ;; set current line color (t ())) "*Face used by hl-line.") ;;(setq hl-line-face 'hlline-face) (setq hl-line-face 'underline) ;; underline (global-hl-line-mode) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; line number ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'linum) (global-linum-mode) (setq linum-format "%3d ") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; C# support ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (autoload 'csharp-mode "csharp-mode" "Major mode for editing C# code." t) (setq auto-mode-alist (cons '("\\.cs$" . csharp-mode) auto-mode-alist)) ;; Patterns for finding Microsoft C# compiler error messages: (require 'compile) (push '("^\\(.*\\)(\\([0-9]+\\),\\([0-9]+\\)): error" 1 2 3 2) compilation-error-regexp-alist) (push '("^\\(.*\\)(\\([0-9]+\\),\\([0-9]+\\)): warning" 1 2 3 1) compilation-error-regexp-alist) ;; Patterns for defining blocks to hide/show: (push '(csharp-mode "\\(^\\s *#\\s *region\\b\\)\\|{" "\\(^\\s *#\\s *endregion\\b\\)\\|}" "/[*/]" nil hs-c-like-adjust-block-beginning) hs-special-modes-alist)