-->

2010-02-16

meadowからemacsへ

この記事は emacs の設定の例です。

emacs23.1 が linux の方に入っているので ntemacs23.1 へ変更しました。
http://d.hatena.ne.jp/galaxy9est/20091206/1260073096でバイナリ配布されていたのをそのまま使いました。
使う機能が大体動いたので、移行できそうなので設定を続けました。

しかし shell-mode が使えないです。
bash のビルドインコマンド (cd, test など) が動作しません。
cd sjisの文字列; test -e sjisの文字列; cat utf8の文字列; ls utf8 の文字列 がそれぞれ成功します。

.emacs に setenv を足すと cd が成功しました。
cygwin では無いコマンドは sjis を返す場合があるので command 2>&1 | nkf などが必要な場合があります。
nkfのインストールは、http://blog.goo.ne.jp/rm_-rf/e/63aa37f245f401d1404b107355d27a52のページを参考にしました。

;; ~/.bashrcで文字コード指定。
;; ...
;; LC_ALL=ja_JP.UTF-8
;; LANG="${LC_ALL}"
;; ...
;; ja_JP.UTF-8 はフックの中で指定すると2回目以降のshell-modeの起動で反映されます。
(setenv "LANG" "ja_JP.UTF-8")
(setenv "LC_ALL" "ja_JP.UTF-8")
(setq explicit-shell-file-name "bash.exe")
(setq shell-file-name "sh.exe")
(setq shell-command-switch "-c")
(set-language-environment "Japanese") ;; ここより上の方にある場合ここはコメントアウトします。
(prefer-coding-system 'iso-2022-jp)
(prefer-coding-system 'euc-jp)
(prefer-coding-system 'shift_jis)
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8-unix)
(set-keyboard-coding-system 'utf-8-unix)
(set-terminal-coding-system 'utf-8-unix)
(setq file-name-coding-system 'sjis) ;; これが無いとemacs自体が日本語ファイルにアクセスできません。
(set-clipboard-coding-system 'sjis) ;; コピペが文字化けする場合、ここをコメントアウトして下さい。
(set-w32-system-coding-system 'sjis) ;; 時計部分などのシステム関連。
(set-buffer-file-coding-system 'utf-8-unix)

switch でcaseを2個書くとインデントがおかしくなります。
case 1 は大丈夫で case "1", case '1' だとおかしくなります。
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=5388
$ sudo CFLAGS="" CXXFLAGS="" USE="-X -alsa -dbus -gif -gpm -gtk -jpeg -png -svg -tiff -xpm" emerge -av emacs
$ LANG=C LC_ALL=C eix app-editors/emacs$
[I] app-editors/emacs
     Available versions:
        (18)    18.59-r6
        (21)    21.4-r19
        (22)    22.3-r3!s
        (23)    23.1-r2!s
        {X Xaw3d alsa dbus gif gpm gtk gzip-el hesiod jpeg kerberos leim m17n-lib motif png sendmail sound source svg tiff toolkit-scroll-bars xft xpm}
     Installed versions:  23.1-r2(23)!s(17:05:58 02/25/10)(-X -Xaw3d -alsa -dbus -gif -gpm -gtk -gzip-el -hesiod -jpeg -kerberos -m17n-lib -motif -png -sound -source -svg -tiff -toolkit-scroll-bars -xft -xpm)
     Homepage:            http://www.gnu.org/software/emacs/
     Description:         The extensible, customizable, self-documenting real-time display editor
$ emacs -Q
M-x c-mode
M-x c-set-style bsd
M-x c-syntactic-information-on-region

switch($a)                      /* ((topmost-intro 192)) */
{                               /* ((substatement-open 192)) */
case 1:                         /* ((case-label 233)) */
case 2:                         /* ((case-label 233)) */
        $a=1;                   /* ((statement-case-intro 306)) */
        break;                  /* ((statement 343)) */
case "1":                       /* ((case-label 233)) */
case "2":                       /* ((case-label 233)) */
        $a=1;                   /* ((statement-cont 457)) */
break;                          /* ((statement 457)) */
}                               /* ((block-close 233)) */

0 件のコメント: