リンク †インストール(ports) †全てports利用。 ただ、X11関係が含まれると、インストールに非常に時間がかかったり、含まれるパッケージのセットアップに失敗して全体が止まったり、良いことがないので、/etc/make.confにWITHOUT_X11=yesを追加しておく。 また、かな漢字変換サーバはFreeWnnを利用。 Teraterm や PuTTY を使って Windows からアクセスするような場合で、日本語変換部分を Windows 側でまかなうひとは FreeWnn 不要。tamago も要らない。 portinstall japanese/FreeWnn-server portinstall editors/emacs これが終わったら、tamagoを入れる。手順はtamagoを参照。 インストール(ソースから) †GNUのダウンロードページ からソースtarball をとってきて configure/make。 wget http://ftp.jaist.ac.jp/pub/GNU/emacs/emacs-23.4.tar.gz tar xfz emacs-23.4.tar.gz ./configure --without-x make make install 設定 †.emacsの最低限の設定はこんな感じ。 ;; 日本語環境 (setq jserver-list '("localhost")) (set-language-environment "Japanese") (setq wnn-jserver "localhost") (setq default-input-method "japanese-egg-wnn") ;; 文字コード (setq default-buffer-file-coding-system 'euc-jp) (setq set-buffer-file-coding-system 'euc-jp) ;; キーカスタマイズ (global-set-key "\M-T" 'egg-toroku-region) ;; 単語登録 (global-set-key "\M-G" 'goto-line) ;; 行指定ジャンプ ;; tab spacing (setq-default tab-width 4) ;; 日本語入力キーカスタマイズ (setq enable-double-n-syntax t) ;; バックアップファイルを作らない (setq make-backup-file nil) ;; シェルモードでコマンドヒストリを有効にする (setq shell-mode-hook (function (lambda () (define-key shell-mode-map [up] 'comint-previous-input) (define-key shell-mode-map [down] 'comint-next-input)))) ;; オートインデント (global-set-key "\C-m" 'newline-and-indent) (global-set-key "\C-j" 'newline) ;;行数をモード行に表示する (line-number-mode 1) ;;時刻をモード行に表示する (display-time) カラー表示ができない †作業マシンの OS を FreeBSD から CentOS に切り替えたんだけど、Windows の Teraterm からつないで emacs を使った際、今までは PHP モードでカラーリングされたソースが見えてたものが、モノクロになってしまった。 最初は目がちかちかして良くなかったカラー画面も、慣れると作業に欠かせなくなってたから、なんとかカラーにしたくて頑張った。 PHP-mode は最新版にしたし、ターミナルも vt100 じゃなくて xterm に揃えた。 emacs ではない通常のシェル上では色がついたが、emacs では白黒のままだ(正確にはモードラインの一部だけ水色になってる) 調べてみると、global-font-lock-mode が立っていないことが判明。 原因は、emacs のバージョンによるもので、22 だとカラー表示がデフォルトだが、21 ではそうでないらしい。 よって、.emacs に下記を追記することで、移行前の環境と同じにできた。 快適快適。 (global-font-lock-mode t) シェルモードで日付などにある全角文字が化ける †正確には化けるのではなくて、エスケープシーケンスで表示される .emacs の各種コーディング設定を UTF-8 にしてあっても、シェルモードについては以下の追加が必要。 (set-terminal-coding-system 'utf-8-unix) (setq shell-mode-hook (function (lambda() (set-buffer-process-coding-system 'utf-8-unix 'utf-8-unix)))) 編集に root 権限が必要なファイルを Emacs から編集する †Emacs を使っているユーザは sudo 可能であることが前提。 C-x C-f でファイルを開くときに、ファイル名として、 /sudo::/etc/hogehoge (/etc/hogehoge は root じゃないと編集できないファイル) とすると、開ける。 これを知るまでは、C-z で Emacs をサスペンドしてから、sudoedit とか "sudo -s して vi" してたけど、これで Emacs のままで編集できるようになった。 ただ、root 権限で開いていることを忘れてしまうのが怖いので、さっさと編集してバッファを閉じた方が安全だと思う。 文字コードを指定してファイルを開き直す †UTF8で開きなおす。M-x のあとは、C-x-f (find-file) でも良い C-x RET c utf-8-unix RET M-x revert-buffer 別解(?)は、 C-x RET r utf-8-unix こっちの方が簡単。 が、文字コードの自動判別をしないで、基本全部 UTF-8 で開いてくれていいんだけど、やり方が分からない。 と思って調べたら、自分の .emacs には下記が抜けていた。 (set-default-coding-systems 'utf-8-unix) load-path を確認する †M-x describe-variable RET load-path 指定したライブラリの実体位置を知りたい †M-x locate-library RET <ライブラリ名(.elなどは省略可)> 行番号を表示する †M-x linum-mode 常に表示させるなら、.emacs に以下を追記 (global-linum-mode t) シェルモードでエイリアス †シェルモードに複数種類があること自体知らなかったんだけど、eshell を使うなら、以下を .emacs.d/init.el などに書けば使える。 (add-to-list 'eshell-command-aliases-list (list "ls" "ls -la")) シェルモードで git log すると見づらい †シェルモードで git log や git diff すると、 WARNING: terminal is not fully functional という警告と共に一部のデータが表示され、ページングもやりづらい。 表示も見づらい。 これは、 git --no-pager log <filename> というように、 --no-pager を付けてあげれば良い。 ほんとはもっと別の解がないかなあと思うけど。 あと、これをしとくと便利。 git config --global core.pager '' デーモン(daemon)モードで使う †デーモンモードで起動しておくと、コンソールが切れたりした場合でも作業中の状態はサーバ上にあるので便利。 emacs --daemon 止めるときは、 emacsclient -e '(kill-emacs)' 長いので、エイリアスにしておくと良い。 homebrew でいれた場合は、デーモンモードでの起動と停止は以下。 なお、OS起動時に自動的に起動されるので、実際使う時は emacsclient からつなぐだけで使える。簡単。 brew services start emacs brew services stop emacs で、デーモンで動いている emacs に接続するのは、emacsclient。 emacsclient -t 長いので、以下のようにエイリアスにしとく。 alias E='emacsclient -t' find-file (Ctrl-X, Ctrl+F) の初期値をホームディレクトリにする †(setq default-directory "~/") (setq command-line-default-directory "~/") シェルモードでのファイルサーチパス †brew で emacs をインストールしたところ、psql など /usr/local/bin の下にあるファイルを見つけられなくなった。 いろいろ調べたところ、.bash_profile ではなく、ホームディレクトリの .zshenv を参照していることが判明。 別に zsh を使ってないんだけど、.zshenv に以下だけを記載してしてから試したら、/usr/local/bin の下を探してくれるようになった(/usr/local/bin以外も入ってるのは気にせず) export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin" |