#contents

* リンク [#od705f59]

[[本家:http://www.gnu.org/software/emacs/]]

[[emacs/PHPモード]]

[[emacs/w3m]]

* インストール(ports) [#a21223d9]

 全てports利用。
 ただ、X11関係が含まれると、インストールに非常に時間がかかったり、含まれるパッケージのセットアップに失敗して全体が止まったり、良いことがないので、/etc/make.confにWITHOUT_X11=yesを追加しておく。
 また、かな漢字変換サーバはFreeWnnを利用。
 Teraterm や PuTTY を使って Windows からアクセスするような場合で、日本語変換部分を Windows 側でまかなうひとは FreeWnn 不要。tamago も要らない。

 portinstall japanese/FreeWnn-server
 portinstall editors/emacs

 これが終わったら、tamagoを入れる。手順は[[tamago:http://www.anseilen.org/puki/index.php?tamago]]を参照。

* インストール(ソースから) [#x48ae809]

[[GNUのダウンロードページ:http://www.gnu.org/software/software.html]] からソース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

* 設定 [#sc2a7e4b]

 .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)

* カラー表示ができない [#sfc4d121]

 作業マシンの 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)

* シェルモードで日付などにある全角文字が化ける [#r7f35d79]

 正確には化けるのではなくて、エスケープシーケンスで表示される

 .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 から編集する [#r785e19c]

Emacs を使っているユーザは sudo 可能であることが前提。

C-x C-f でファイルを開くときに、ファイル名として、

 /sudo::/etc/hogehoge
 (/etc/hogehoge は root じゃないと編集できないファイル)

とすると、開ける。

これを知るまでは、C-z で Emacs をサスペンドしてから、sudoedit とか "sudo -s して vi" してたけど、これで Emacs のままで編集できるようになった。 ただ、root 権限で開いていることを忘れてしまうのが怖いので、さっさと編集してバッファを閉じた方が安全だと思う。

* 文字コードを指定してファイルを開き直す [#eaf80598]

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 を確認する [#uf3edbb0]

 M-x describe-variable RET
 load-path

* 指定したライブラリの実体位置を知りたい [#i3fee0fc]

 M-x locate-library RET
 <ライブラリ名(.elなどは省略可)>

* 行番号を表示する [#d4609ec1]

 M-x linum-mode

常に表示させるなら、.emacs に以下を追記

 (global-linum-mode t)

* シェルモードでエイリアス [#o919d6da]

シェルモードに複数種類があること自体知らなかったんだけど、eshell を使うなら、以下を .emacs.d/init.el などに書けば使える。

 (add-to-list 'eshell-command-aliases-list (list "ls" "ls -la"))

* シェルモードで git log すると見づらい [#l68e9910]

シェルモードで git log や git diff すると、

 WARNING: terminal is not fully functional

という警告と共に一部のデータが表示され、ページングもやりづらい。
表示も見づらい。

これは、

 git --no-pager log <filename>

というように、 --no-pager を付けてあげれば良い。

ほんとはもっと別の解がないかなあと思うけど。

あと、これをしとくと便利。

 git config --global core.pager ''

* デーモン(daemon)モードで使う [#of1f4b67]

デーモンモードで起動しておくと、コンソールが切れたりした場合でも作業中の状態はサーバ上にあるので便利。

 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) の初期値をホームディレクトリにする [#ua04b93f]

 (setq default-directory "~/") 
 (setq command-line-default-directory "~/")

* シェルモードでのファイルサーチパス [#yf66a7f4]

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"


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS