リンク

本家

emacs/PHPモード

emacs/w3m

インストール(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"

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