2008年2月18日

PHPを使うWebアプリケーション開発用にインストールしたEmacs Lispメモです。

elファイルは、/usr/local/share/emacs/22.1/site-lispに置きました。

php-mode

ダウンロード:SourceForge.net: PHP mode for Emacs
バージョン:1.4.0

1.4.0は、Emacs バージョン22.1がサポート対象のようです(SourceForge.net: PHP mode 1.4.0 released)。

.emacs設定

php-mode1.2.0では、タブ幅の設定などは、php-mode-user-hookで動作していました。
php-mode1.4.0は、php-mode-hookで動作するようです。

(add-hook 'php-mode-hook 'turn-on-font-lock)

(autoload 'php-mode "php-mode" "PHP mode" t)

(defcustom php-file-patterns (list "\\.php[s34]?\\'" "\\.phtml\\'" "\\.inc\\'")
  "*List of file patterns for which to automatically invoke php-mode."
  :type '(repeat (regexp :tag "Pattern"))
  :group 'php)

(let ((php-file-patterns-temp php-file-patterns))
  (while php-file-patterns-temp
    (add-to-list 'auto-mode-alist
                 (cons (car php-file-patterns-temp) 'php-mode))
    (setq php-file-patterns-temp (cdr php-file-patterns-temp))))

(add-hook 'php-mode-hook '(lambda ()
    (setq c-basic-offset 2)
    (setq c-tab-width 2)
    (setq c-argdecl-indent 0)
    (setq c-auto-newline nil)
    (setq c-continued-statement-offset 0)
    (setq c-indent-level 2)
    (setq c-label-offset -2)
    (setq c-tab-always-indent t)
    (setq indent-tabs-mode t)
    (setq tab-width 2)
    (setq-default tab-width 2)
) t)
参考リンク
html-helper-mode
.emacs設定
(autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t)
(setq auto-mode-alist (cons '("\\.\\(html\\|htm\\|tpl\\|ctp\\)$" . html-helper-mode) auto-mode-alist))
(add-hook 'html-helper-mode-hook '(lambda ()
    (setq c-basic-offset 2)
    (setq c-tab-width 2)
    (setq c-argdecl-indent 0)
    (setq c-auto-newline nil)
    (setq c-continued-statement-offset 0)
    (setq c-indent-level 2)
    (setq c-label-offset -2)
    (setq c-tab-always-indent t)
    (setq indent-tabs-mode t)
    (setq tab-width 2)
    (setq-default tab-width 2)
) t)
参考リンク
javascript-mode

javascript.elは、javascript.el - Yet Another Hackadelicの記事でダウンロード先が紹介されています。

.emacs設定
(add-to-list 'auto-mode-alist (cons  "\\.\\(js\\|as\\|json\\|jsn\\)\\'" 'javascript-mode))
(autoload 'javascript-mode "javascript" nil t)
(setq js-indent-level 2)
css-mode

ダウンロード:A CSS editing mode for Emacs
バージョン:0.10

.emacs設定
(autoload 'css-mode "css-mode" "CSS mode" t)
(setq auto-mode-alist
    (cons '("\\.css\\'" . css-mode) auto-mode-alist))
(setq cssm-indent-function #'cssm-c-style-indenter)
smarty-mode

ダウンロード:EmacsWiki: Smarty Mode

.emacs設定
(add-to-list 'auto-mode-alist (cons "\\.tpl\\'" 'smarty-mode))
(autoload 'smarty-mode "smarty-mode" "Smarty Mode" t)

関連投稿

2008年2月17日

Emacs 21.3から22.1への入れ替えメモです。

VMware上のCentOS4.4にインストールしました。

nXhtml - an Emacs mode for XHTMLを使用したかったのが入れ替えの動機です。
(nXhtmlは、試してみましたが、カラーの設定がうまくいかず、とりあえず使用しないことに・・・。)

rpmパッケージの削除

最初にEmacs21.3のrpmパッケージを削除しました。

# rpm -qa | grep emacs
# rpm -e emacs-leim-21.3-19.EL.4 emacs-21.3-19.EL.4 emacs-common-21.3-19.EL.4

emacs-commonやemacs-leimは何かは知りませんが、気にせず削除しました。

Emacs 22.1のダウンロード

GNU Emacs - GNU Project - Free Software Foundation (FSF)

emacs-22.1.tar.gzをダウンロード。

インストール

# tar xvzf emacs-22.1.tar.gz
# cd emacs-22.1
# ./configure
# make
# make install

Emacsセッションの保存

22.1にしたところ、Emacsを終了しただけで、Emacsセッションの保存ができなくなりました。
M-x desktop-saveするとセッションの保存ができるのですが。

21.3は、次を.emacsに記述するだけで動作していました。

(desktop-load-default)
(desktop-read)

そこで、次のような記述に変更したところ、セッションの保存ができました。

(require 'desktop)
(setq desktop-enable t)
(desktop-load-default)
(desktop-read)

ただ、Emacsバージョン22.1の場合、Saving Emacs Sessions - GNU Emacs Manualにあるように、

(desktop-save-mode 1)

を記述するだけでよいみたいです。

2007年7月25日

訳あって、MySQLのsocketの位置を、/var/lib/mysql/mysql.sockから/tmp/mysql.sockに変更しました。
emacsのsql-mysqlで、mysqlに接続しているのですが、MySQLのsocketの位置を正しく認識してくれない状況になりました。
(もともとemacsのsql-mysqlで接続するために、ソケットの位置を/var/lib/mysql/mysql.sockにしていたのですが・・・)

.emacsに次を記述したところ、接続できました。

(setq sql-mysql-options '("--socket=/tmp/mysql.sock"))
2007年7月7日

CentOS4を使用したサーバーに移行しました。

emacsで、文字コードにutf-8を指定すると、何故か文字化け。
.emacsの設定もいろいろなサーバーで使用しているものと変わらないのですが・・・

/etc/sysconfig/i18nを作成して、次を記述したところ、文字化け(utf-8を認識しない?)は解決しました。

LANG="ja_JP.UTF-8"
SUPPORTED="ja_JP.UTF-8:ja_JP:ja"

他に影響がなければよいのですが。
しばらく様子を見ます。

2007年7月4日

emacsで開いているファイルの状態を保存する方法を試しました。

GNU Emacsマニュアル: Saving Emacs Sessions
http://www.geocities.co.jp/SiliconValley-Bay/9285/EMACS-JA/emacs_428.html#SEC429

.emacsに追加する設定

(desktop-load-default)
(desktop-read)

M-x desktop-saveを最初に手動で行う必要があるようでした。

screenコマンドを使用すると文字化けするサーバーで便利に使えそうです。

WindowsXP上のMeadow(2.10)でも有効でしたので、今まで必ず手動で開いていたファイルが自動で開けるようになりました。
(Meadowのショートカットのプロパティの作業フォルダに、M-x desktop-saveしたときのフォルダを指定しました。)
もっと早く試せばよかった・・・