かわちょでぶろぐ

Visual Basic .NET を……、強いられているんだ! → 強いられなくなった! → ふたたび、強いられているんだ! → 転職!

Emacs で VB.NET コードを見るために vbnet-mode.el を入れた

Emacs で Visual Basic(VB.NET) のコードを見たときにシンタックスハイライトされるよう、vbnet-mode.el を入れた。.NET 以前の Visual Basic の visual-basic-mode.el とは別物なので注意しよう(派生物のようだが)。

f:id:kawacho:20140930033625p:plain

インストール

EmacsWiki からダウンロードして load-path がとおったところへ。auto-install とかあるならそれでも。

設定

EmacsWiki や vbnet-mode.el のコメントに書かれている設定をベースにお好みで調整。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; vbnet-mode(VB.NET)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; - http://www.emacswiki.org/emacs/VbDotNetMode
;; - http://www.emacswiki.org/emacs/vbnet-mode.el

(autoload 'vbnet-mode "vbnet-mode" "Mode for editing VB.NET code." t)
(setq auto-mode-alist (append '(("\\.\\(frm\\|bas\\|cls\\|vb\\)$" .
                                 vbnet-mode)) auto-mode-alist))
(defun my-vbnet-mode-fn ()
  "My hook for VB.NET mode"
  (interactive)
  (turn-on-font-lock)
  (turn-on-auto-revert-mode)
  (setq indent-tabs-mode nil)
  (setq vbnet-mode-indent 4)
  (setq vbnet-want-imenu t)
  ;; (require 'flymake)
  ;; (flymake-mode 1)
  )
(add-hook 'vbnet-mode-hook 'my-vbnet-mode-fn)
  • font-lock はグローバルに有効化しているから (turn-on-font-lock) とか要らないか。
  • Visual Studio と一緒に使っていることがあるだろうから、auto-revert-mode(ファイルが更新されたら自動で読み込み直し)は有効にしておくのが良さそう。
  • flymake とかの設定は面倒でやってない。

Visual Studio があればいらんやん?

まぁ、普通はそうなんだが、

  • .NET Framework 1.0/1.1 時代のプロジェクトなど、変換しないとローカルの Visual Studio 2013 では見れない場合がある。
  • Emacs 上の方が検索やウィンドウ分割など使いやすいし。vb ファイル一個みたいだけなら Visual Studio たちあげるより Emacs の方が。
  • たまに、Mac 上でもソースを眺めたりすることがあるので。