2010年3月12日金曜日

Emacs設定まとめ (Windows)

Emacs設定(.emacs)のまとめです(随時更新)。
;;
;; Emacs 23.1
;;
;; Last-Modified: 2010-03-10T02:01:32+09:00
;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Japanese Environment ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(set-language-environment "Japanese")

;;;; utf-8-{dos, unix, mac}
;;;; CR+LF LF CR
;;;; use "dos" or "unix"
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
;(set-file-name-coding-system 'shift-jis)

;;;; フォント
;(set-default-font "MeiryoKe_Console-11")
(set-frame-font "MeiryoKe_Console-11")


;;;; C-x 5 2 で新しいフレームを作成した場合
;;;; フォントが指定したものにならないための対策
(modify-all-frames-parameters (list (assq 'font (frame-parameters))))





;;;;;;;;;;;;;;;
;; Windows ;;
;;;;;;;;;;;;;;;
;; IME
(w32-ime-initialize)
(setq default-input-method "W32-IME")
(setq-default w32-ime-mode-line-state-indicator "[--]")
(setq w32-ime-mode-line-state-indicator-list '("[--]" "[あ]" "[--]"))




;;;;;;;;;;;;;;;;
;; 共通設定 ;;
;;;;;;;;;;;;;;;;

;;
;; 日本語入力を中止
;;

;;;; ミニバッファでyes/no選択時,IMEを自動でOFFに
;(wrap-function-to-control-ime 'y-or-n-p nil nil)
;(wrap-function-to-control-ime 'yes-or-no-p nil nil)
;;;; 置換するときにIMEをOFF
;(wrap-function-to-control-ime 'perform-replace nil nil)
;;;; C-u と打つとIMEをOFF
;(wrap-function-to-control-ime 'universal-argument t nil)
;(wrap-function-to-control-ime 'read-string nil nil)
;(wrap-function-to-control-ime 'read-from-minibuffer nil nil)
;(wrap-function-to-control-ime 'read-key-sequence nil nil)
(wrap-function-to-control-ime 'map-y-or-n-p nil nil)
;(wrap-function-to-control-ime 'read-passwd t t) ; don't work as we expect.


;;;; キーバインド
(define-key global-map "\C-c;" 'comment-region) ; コメントアウト
(define-key global-map "\C-c:" 'uncomment-region) ; コメント解除



;;
;; 見栄え関連
;;

;;;; 文字色を設定
;(add-to-list 'default-frame-alist '(foreground-color . "white"))
;;;; 背景色を設定
;(add-to-list 'default-frame-alist '(background-color . "black"))
(setq initial-frame-alist
(append
'((foreground-color . "white") ;前景色
(background-color . "black") ;背景色
(cursor-color . "gray") ;カーソル色
(width . 80) ;フレーム幅(文字数)
(height . 50) ;フレーム高(文字数)
;(top . 50) ;フレームの Y 位置(ピクセル数)
;(left . 10) ;フレームの X 位置(ピクセル数)
;(alpha . 90) ;フレームの-透明度(%)
)
initial-frame-alist))
(setq default-frame-alist
(append
'((foreground-color . "white") ;前景色
(background-color . "black") ;背景色
(cursor-color . "gray") ;カーソル色
(width . 80) ;フレーム幅(文字数)
(height . 40) ;フレーム高(文字数)
;(top . 50) ;フレームの Y 位置(ピクセル数)
;(left . 10) ;フレームの X 位置(ピクセル数)
;(alpha . 90) ;フレームの-透明度(%)
)
default-frame-alist))


;;;; IME の ON/OFF でカーソルの色を変える
(set-cursor-color "gray")
(add-hook 'input-method-activate-hook
(function (lambda () (set-cursor-color "green"))))
(add-hook 'input-method-inactivate-hook
(function (lambda () (set-cursor-color "gray"))))


;;;; リージョンをハイライトする
(transient-mark-mode t)
;;;; 対応する括弧をハイライトする
(show-paren-mode t)
;;;; 最終行に必ず一行挿入する
(setq require-final-newline t)
;;;; find-fileのファイル名補完で大文字小文字を区別しない設定
(setq completion-ignore-case t)
;;;; モードラインに行数と列数を表示
;(line-number-mode t)
(column-number-mode t)
;;;; ツールバーを消す
(tool-bar-mode 0)
;;;; カーソルの点滅を止める
(blink-cursor-mode 0)
;;;; スクロールを一行ずつにする
;; (setq scroll-conservatively 35
;; scroll-margin 0
;; scroll-step 1)

;;;; スクロールの加速を止める
(setq mouse-wheel-progressive-speed nil)

;;;; スクロール量の設定
;; (defvar my-wheel-scroll-lines 5 "マウスホイールのスクロール量")
;; (defun my-wheel-down-scroll-lines ()
;; "" (interactive) (scroll-up my-wheel-scroll-lines))
;; (defun my-wheel-up-scroll-lines ()
;; "" (interactive) (scroll-down my-wheel-scroll-lines))
;; (global-set-key [wheel-up] 'my-wheel-up-scroll-lines)
;; (global-set-key [wheel-down] 'my-wheel-down-scroll-lines)
;; ;;;;
;; (setq my-wheel-scroll-lines 3)
;; (global-set-key [double-wheel-up] 'my-wheel-up-scroll-lines)
;; (global-set-key [double-wheel-down] 'my-wheel-down-scroll-lines)
;; ;;;;
;; (setq my-wheel-scroll-lines 3)
;; (global-set-key [triple-wheel-up] 'my-wheel-up-scroll-lines)
;; (global-set-key [triple-wheel-down] 'my-wheel-down-scroll-lines)

;;;; スクロールバーを右側に表示する
;(set-scroll-bar-mode 'right)



;;
;; Font Lock
;;

;;;; プログラムの色分け
;(global-font-lock-mode t)
;;;; ロックのかけ方
;(setq font-lock-support-mode 'jit-lock-mode)
;(setq font-lock-support-mode 'lazy-lock-mode) ;エラー
;(setq font-lock-support-mode 'fast-lock-mode) ;エラー

;; set-face-bold-p, set-face-italic-p, set-face-stipple
;; set-face-underline-p
;; set-face-foreground, set-face-background

;;;; コメント 'font-lock-comment-face
;(set-face-italic-p 'font-lock-comment-face t)
;(set-face-foreground 'font-lock-comment-face "gray")
;;;; 文字列
;(set-face-foreground 'font-lock-string-face "green")
;;;; キーワード(言語のTokenであるif,forなど)に適用される
;(set-face-foreground 'font-lock-keyword-face "orange")
;;;; 組み込み関数名
;(set-face-foreground 'font-lock-builtin-face "red")
;;;; 定義/宣言される関数名
;(set-face-foreground 'font-lock-function-name-face "yellow")
;;;; 定義/宣言される変数名
;(set-face-background 'font-lock-variable-name-face "LightGreen")
;;;; ユーザー定義のデータ型の名前 R(TRUE/FALSE)
;(set-face-foreground 'font-lock-type-face "LightBrue")
;;;; 定数名 R(<-)
;(set-face-foreground 'font-lock-constant-face "magenta")
;;;; 独特な構文や別のテキストの意味を大きく変えるようなもの。たとえば、Emacs Lispの`;;;###autoload'や Cの#error指定
;(set-face-foreground 'font-lock-warning-face "orange")
;;;; Vector/matrix labels R([])





;;;;;;;;;;;;
;; 拡張 ;;
;;;;;;;;;;;;

;;
;; color-theme i
;;
(require 'color-theme)
(add-to-list 'load-path "/path/to/color-theme.el/file")
(require 'color-theme)
(eval-after-load "color-theme"
'(progn
(color-theme-initialize)
(color-theme-dark-laptop)))


;;
;; AutoComplete (auto-complete.el)
;; YASnippet (yasnippet.elなど)
;;

;;;; yasnippetの設定
;(add-to-list 'load-path "~/site-lisp/yasnippet");;site-lispにロードパスを通してる場合
;(add-to-list 'load-path "C:/usr/local/emacs/site-lisp/yasnippet")
(require 'yasnippet) ;; not yasnippet-bundle
(yas/initialize)
(defvar my-yas-load-directory "C:/usr/local/emacs/site-lisp/yasnippet/snippets" "snippetのパス")
(yas/load-directory my-yas-load-directory)

;;;; snippetsのパス
(setq my-yas-load-directory "C:/usr/local/emacs/site-lisp/yasnippet/snippets")



;;
;; Auto Complete (auto-complete.el) i
;; (auto-complete-acr.el) i
;; (auto-complete-yasnippet) i
;;
(require 'auto-complete)
(global-auto-complete-mode t)
(require 'auto-complete-yasnippet)
(require 'auto-complete-acr)

;;;; auto-complete-modeの自動起動
;;;; auto-complete.elの中にac-modesという変数があって、どのメジャーモードでauto-complete-modeを実行するか管理しているようです。
;;;; なので、この中にess-modeを追加すればいいと思います。
;; (when (boundp 'ac-modes)
;; (setq ac-modes
;; (append ac-modes
;; (list 'ess-mode))))
(defun ess-mode-load-hook ()
(require 'auto-complete)
(when (boundp 'ac-modes)
(setq ac-modes
(append ac-modes
(list 'ess-mode 'yas/minor-mode))))
(global-auto-complete-mode t))
(add-hook 'ess-mode-hook 'ess-mode-load-hook)


;;
;; time-stamp
;;
;(require 'time-stamp)
;;;; 最終更新日の自動挿入 <>
(add-hook 'before-save-hook 'time-stamp)
(setq time-stamp-active t)
(setq time-stamp-start "Last-Modified: ")
;(setq time-stamp-start "last update: ")
(setq time-stamp-format "%04y-%02m-%02dT%02H:%02M:%02S+09:00")
;(setq time-stamp-format "%04y-%02m-%02dT%02H:%02M:%02S %Z")
(setq time-stamp-end "$")
;(setq time-stamp-line-limit 20)



;;
;; YaTeX (野鳥) i
;;
(setq auto-mode-alist
(cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)

;;;; 自動改行の制御 (off)
(add-hook 'yatex-mode-hook
'(lambda ()
(auto-fill-mode -1)))

;;;; 野鳥の emacs-lisp ファイル群を置くディレクトリ
;(setq load-path (cons (expand-file-name "~/src/emacs/yatex") load-path))

;;;; platex
(setq tex-command "platex -src")
;;;; dviout
(setq dvi2-command "c:/dviout/dviout")
;;;; makeindex
(setq makeindex-command "mendex")
;;;; bibtex
(setq bibtex-command "jbibtex")
;;;; dvipdfmを追加
;;;; dviからpdfを作成する%sはファイル名
(setq dviprint-command-format "dvipdfmx %s")

;;;; 新規ファイル作成時に自動挿入するファイル名
;(setq YaTeX-template-file "~/.LaTeX-template")
;(setq YaTeX-template-file "~/main.tex")



;;
;; ESS (Emacs Speaks Statistics) i
;;
(require 'ess-site)
;; (setq auto-mode-alist
;; (cons (cons "\\.r$" 'R-mode) auto-mode-alist))
;; (autoload 'R-mode "ess-site" "Emacs Speaks Statistics mode" t)

;;;; R起動時にWorkingディレクトリが聞かれなくなる
(setq ess-ask-for-ess-directory nil)

;;;; R path (PATHが通っていない場合)
(setq inferior-R-program-name "C:/usr/local/R/R-2.10.1/bin/Rterm.exe")
;;;; R起動オプション
;(setq inferior-R-args "--vanilla")


;;;; ess-mode時にフレームサイズ変更
(defvar my-ess-frame-width 110 "ESSモード時のフレーム幅(zw)")
(defvar my-ess-frame-height 55 "ESSモード時のフレーム高(zw)")
(add-hook 'ess-mode-hook
`(lambda ()
(modify-frame-parameters
(selected-frame)
'((width . ,my-ess-frame-width)
(height . ,my-ess-frame-height)))))

;; ESS時のフレームサイズ
(setq my-ess-frame-width 128)
(setq my-ess-frame-height 64)

;; プロセスコーディング
(setq ess-pre-run-hook
'((lambda ()
(setq default-process-coding-system '(sjis . sjis)))))

;;;; window分割
(defun ess:format-window-1 ()
(split-window-horizontally)
(other-window 1)
(split-window)
(other-window 2))
(add-hook 'ess-pre-run-hook 'ess:format-window-1)

;;


;;;; コード色づけ ;;;;
;;;; ess-cust.el

;; (make-face 'R-face)
;; (set-face-foreground 'R-face "blue")
;; (font-lock-add-keywords 'ess-mode
;; '(("\\([][+*/^$@!<>&|=:%-]\\)" 1 R-face t)))
;(add-hook 'ess-mode-hook 'turn-on-font-lock)

;; (defface region
;; '((((class color) (background dark))
;; :background "orage")
;; (t :background "gray"))
;; "Basic face for highlighting the region."
;; :group 'basic-faces)


;;;; Rの演算子の色づけ
;; (font-lock-add-keywords
;; 'ess-mode
;; '(("\\([][+*/^$@!<>&|=:%-]\\)" 1 font-lock-builtin-face keep)))
(defface my-R-font-lock-access-operator-face
'((t (:foreground "red")))
"Used for displaying the region."
:group 'font-lock-builtin-face)
(setq my-R-font-lock-access-operator-face ' my-R-font-lock-access-operator-face)
(font-lock-add-keywords
'ess-mode
'(("\\([][$@]\\)" 1 my-R-font-lock-access-operator-face keep)))


;;;; Rの定数の色づけ
(font-lock-add-keywords
'ess-mode
'(("\\<\\(LETTERS\\|letters\\|.Machine\\|.Platform\\)\\>" 1 font-lock-constant-face keep)))




;;
;; ess-R-object-popup (C-c C-g) i
;; (popup.el) i
;; (auto-complete) i
;;

;;;; auto-complete.elとpopup.elが必要
(require 'popup)
(require 'ess-R-object-popup)



;;
;; 括弧補完 (brackets.el) i
;;
(load "brackets")
;;;; emacs-lisp-mode
(add-hook 'emacs-lisp-mode-hook
'(lambda()
(progn
(define-key emacs-lisp-mode-map "(" 'insert-parens)
(define-key emacs-lisp-mode-map "\"" 'insert-double-quotation)
(define-key emacs-lisp-mode-map "\C-c)" 'insert-parens-region)
)))

;;;; ess-mode
(add-hook 'ess-mode-hook
'(lambda()
(progn
;; { で{}を書く
(define-key ess-mode-map "{" 'insert-braces)
;; ( で()を書く
(define-key ess-mode-map "(" 'insert-parens)
;; " で""を書く
(define-key ess-mode-map "\"" 'insert-double-quotation)
;; [ で[]を書く
(define-key ess-mode-map "[" 'insert-brackets)
;; Ctrl+c }でregionを{}で囲む
(define-key ess-mode-map "\C-c}" 'insert-braces-region)
;; Ctrl+c )でregionを()で囲む
(define-key ess-mode-map "\C-c)" 'insert-parens-region)
;; Ctrl+c ]でregionを[]で囲む
(define-key ess-mode-map "\C-c]" 'insert-brackets-region)
;; Ctrl+c "でregionを""で囲む
(define-key ess-mode-map "\C-c\"" 'insert-double-quotation-region)
)))



;;
;; Aspell (aspell.exe)
;;

;(setq-default ispell-program-name "aspell")
;;;; 日本語まじりの文書をチェックしたい場合
;(eval-after-load "ispell"
; '(add-to-list 'ispell-skip-region-alist '("[^\000-\377]+")))



;;
;; Anything (anything.el, anything-config.el) (C-x b)
;;
;(require 'anything-config)

;;;; http://sheephead.homelinux.org/2009/10/26/1673/ ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;anything-c-source-R-helpの設定
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(setq anything-c-source-R-help
'((name . "R objects / help")
(init . (lambda ()
;; this grabs the process name associated with the buffer
(setq anything-c-ess-local-process-name ess-local-process-name)))
(candidates . (lambda ()
(condition-case nil
(ess-get-object-list anything-c-ess-local-process-name)
(error nil))))
(action
("help" . ess-display-help-on-object)
("head (10)" . (lambda(obj-name)
(ess-execute (concat "head(" obj-name ", n = 10)\n") nil (concat "R head: " obj-name))))
("head (100)" . (lambda(obj-name)
(ess-execute (concat "head(" obj-name ", n = 100)\n") nil (concat "R head: " obj-name))))
("tail" . (lambda(obj-name)
(ess-execute (concat "tail(" obj-name ", n = 10)\n") nil (concat "R tail: " obj-name))))
("str" . (lambda(obj-name)
(ess-execute (concat "str(" obj-name ")\n") nil (concat "R str: " obj-name))))
("summary" . (lambda(obj-name)
(ess-execute (concat "summary(" obj-name ")\n") nil (concat "R summary: " obj-name))))
("view source" . (lambda(obj-name)
(ess-execute (concat "print(" obj-name ")\n") nil (concat "R object: " obj-name))))
("dput" . (lambda(obj-name)
(ess-execute (concat "dput(" obj-name ")\n") nil (concat "R dput: " obj-name)))))
(volatile)))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; anything-c-source-R-localの設定
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq anything-c-source-R-local
'((name . "R local objects")
(init . (lambda ()
;; this grabs the process name associated with the buffer
(setq anything-c-ess-local-process-name ess-local-process-name)
;; this grabs the buffer for later use
(setq anything-c-ess-buffer (current-buffer))))
(candidates . (lambda ()
(let (buf)
(condition-case nil
(with-temp-buffer
(progn
(setq buf (current-buffer))
(with-current-buffer anything-c-ess-buffer
(ess-command "print(ls.str(), max.level=0)\n" buf))
(split-string (buffer-string) "\n" t)))
(error nil)))))
(display-to-real . (lambda (obj-name) (car (split-string obj-name " : " t))))
(action
("str" . (lambda(obj-name)
(ess-execute (concat "str(" obj-name ")\n") nil (concat "R str: " obj-name))))
("summary" . (lambda(obj-name)
(ess-execute (concat "summary(" obj-name ")\n") nil (concat "R summary: " obj-name))))
("head (10)" . (lambda(obj-name)
(ess-execute (concat "head(" obj-name ", n = 10)\n") nil (concat "R head: " obj-name))))
("head (100)" . (lambda(obj-name)
(ess-execute (concat "head(" obj-name ", n = 100)\n") nil (concat "R head: " obj-name))))
("tail" . (lambda(obj-name)
(ess-execute (concat "tail(" obj-name ", n = 10)\n") nil (concat "R tail: " obj-name))))
("print" . (lambda(obj-name)
(ess-execute (concat "print(" obj-name ")\n") nil (concat "R object: " obj-name))))
("dput" . (lambda(obj-name)
(ess-execute (concat "dput(" obj-name ")\n") nil (concat "R dput: " obj-name)))))
(volatile)))

;;;; anything.elの設定
(require 'anything-config)
(define-key global-map (kbd "C-x b") 'anything)

(setq anything-sources
'(anything-c-source-buffers
anything-c-source-emacs-commands
anything-c-source-file-name-history
anything-c-source-locate
anything-c-source-man-pages
anything-c-source-occur
anything-c-source-recentf
anything-c-source-R-local
anything-c-source-R-help
))
;;;; http://sheephead.homelinux.org/2009/10/26/1673/ ;;;;



;;
;; ac-anything.el i
;; auto-completeの候補をanythingで選択
;;
(require 'ac-anything)
(define-key ac-complete-mode-map (kbd "C-:") 'ac-complete-with-anything)

Bloggerで「SyntaxHighlighter 2.x」を利用する

前の記事では、古い「SyntaxHighlighter 1.5.x」を使用していましたが、今回は新しい「SyntaxHighlighter 2」系をBloggerで利用する方法を紹介します。公式サイトはこちらです。2010年3月12日現在での最新バージョンは、2.1.364 です。しかしながら、以下で紹介する方法は常に最新バージョンを利用できるようになっております。今回はこちらと「Awesome code syntax highlighting made easy | Carter Cole's Blog」を参考にしました。
  1. 以下をBloggerテンプレートの </head> タグの前に貼り付ける:

    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'></script>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'></script>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'></script>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'></script>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js' type='text/javascript'></script>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'></script>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'></script>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'></script>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js' type='text/javascript'></script>
    <link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
    <link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
    <script language='javascript'>
    SyntaxHighlighter.config.bloggerMode = true;
    SyntaxHighlighter.config.clipboardSwf = 'http://alexgorbatchev.com/pub/sh/current/scripts/clipboard.swf';
    SyntaxHighlighter.all();
    </script>
    もし、常に最新のバージョンではなく、特定のバージョンのものを利用したい場合は、「http://alexgorbatchev.com/pub/sh/current/」を「http://alexgorbatchev.com/pub/sh/2.1.364/」などに変更してください。
    「shBrush言語.js」は、公式サイトや他のサイトでも様々な言語のものが配布されているので、適宜必要なものを追加してください(公式サイトなどホスティングして提供されている所以外では、必ず自分でファイルを置く場所を確保し、そこから取得するようにしてください)。
    また、スタイルシート「shThemeDefault.css」の代わりに自分の好みのものに変更することもできます。
  2. ブログエントリのときに、「HTML の編集」タブを選択し、以下のように入力する:
    • CDATA でコードを囲った特別な <script> タグを使用する方法:
      <script type="syntaxhighlighter" class="brush: html"><![CDATA[
      ここにコードを張り付ける
      ]]></script>
    • もしくは <pre> を使用する方法(HTMLエスケープはQuick Escapeのサイトで簡単にできます):
      <pre class="brush: html">
      ここにHTMLエスケープされたコードを貼り付ける
      </pre>
    brush: html」の部分はこちらを参考にして、適宜「brush: Ruby」などに変更してください。

Bloggerで「SyntaxHighlighter」を利用する

(注:この記事は古い「SyntaxHighlighter 1.5.x」を使用したものです。「SyntaxHighlighter 2.0」が2009年2月3日にリリースされており、新しいバージョンを利用する方法の記事はこちらにあります。)

Bloggerに限らず、Webページ上で様々なプログラミング言語のコードを載せる機会はあると思います。掲載したコードを色付けして見やすくするためには、いくつかの方法があると思いますが、今回は「SyntaxHighlighter」というjavascriptを利用することで実現します。
このブログはBloggerで運用していますので、Bloggerで「SyntaxHighlighter」を利用する方法を紹介します。
Adding Syntax Highlighting to Blogger」を参考にしました。
  1. http://syntaxhighlighter.googlecode.com/svn/trunk/Styles/SyntaxHighlighter.cssにアクセスし、全てをコピーする
  2. Bloggerの「HTML編集」で <b:skin><!--[CDATA[/*]]--></b:skin> の間に貼り付ける
  3. </head> タグの前に以下を貼り付ける
    <!-- Add-in CSS for syntax highlighting -->
    <script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shCore.js' type='text/javascript'></script>
    <script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushCpp.js' type='text/javascript'></script>
    <script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushCSharp.js' type='text/javascript'></script>
    <script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushCss.js' type='text/javascript'></script>
    <script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushDelphi.js' type='text/javascript'></script>
    <script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushJava.js' type='text/javascript'></script>
    <script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushJScript.js' type='text/javascript'></script>
    <script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushPhp.js' type='text/javascript'></script>
    <script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushPython.js' type='text/javascript'></script>
    <script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushRuby.js' type='text/javascript'></script>
    <script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushSql.js' type='text/javascript'></script>
    <script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushVb.js' type='text/javascript'></script>
    <script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushXml.js' type='text/javascript'></script>
  4. </body> タグの前に以下を貼り付ける

    <!-- Add-in Script for syntax highlighting -->
    <script language='javascript'>
    dp.SyntaxHighlighter.BloggerMode();
    dp.SyntaxHighlighter.HighlightAll('code');
    </script>
  5. ソースコードを含むブログエントリーのときに、「HTML の編集」タブを選択し、HTMLエスケープされたソースコードを以下のコードの間に入力する
    <pre name="code" class="cpp">
    ...あなたのHTMLエスケープされたコードここに貼り付ける...
    </pre>
    "cpp"の部分は、コードの言語にあわせて書き換えてください(cpp, c, c++, c#, c-sharp, csharp, css, delphi, pascal, java, js, jscript, javascript, php, py, python, rb, ruby, rails, ror, sql, vb, vb.net, xml, html, xhtml, xslt).(詳細はこちら