Emacs


Emacs本体

概要

 Linux 用のテキストエディタとして、vi と並んで代表的な存在です。
 Emacs は、テキストエディタとしてだけでなく、シェルとしての利用やファイル管理、メールの読み書き、Webの閲覧までできるため、Linux の日常的な作業環境として利用できるだけの機能があります。その分、動作が重いとの批判があるようで、実際、起動はちょっと遅いような気がします。とは言うものの、僕自身は Linux の起動と同時に Emacs を立ち上げているため、普段は動作が遅いと感じることはあまりありません。vi のモード切替でちょくちょく混乱するので普段は Emacs を使っています。あと、岩谷宏さんが Emacs を毛嫌いしているのも使っている理由の一つだったりします(相変わらず口が悪いですけど)。

入手先

ftp://ftp.gnu.org/gnu/emacs/
 ミラーサイトがいくつかあるので、そこからの方がいいかも。ともあれ、この中の「emacs-xx.x.tar.gz」と「leim-xx.x.tar.gz」 を取ってくる。
ftp://ftp.jpl.org/pub/misc/
 その上で、上記から、「emcws-emcws-xx.x-xxxxxxxx.gz」と「emcws-xx.x-rename.patch.gz」を取ってくる必要がある。

Install

 僕自身は、Vine に標準で入っているものを使用しています。

 ソースコードからコンパイルする場合、日本語入力のためにパッチを当てる必要があったりして、結構面倒そう。この辺の作業を省略できるだけでも、日本語を標準でサポートしているディストリビューションだと楽。具体的なインストール方法については、僕自身試していないので記述を省略します。

設定

 僕が学生時代初めて Emacs を使い始めたときは、Emacs の設定ファイルは、「.emacs」だけだったのですが、今は「.emacs」「.emacs.el」「.xemacs.el」等、複数のファイルがあります。どのファイルに個人的な設定を記述するがいいのか、今ひとつよく分からないので、とりあえず僕は「.emacs.el」に書いています。

【追記】
 その後、調べた結果、「.emacs.el」「.xemacs.el」は、Emacs20 以降で使われているようです。てなわけで、珍しく勘があたった(^^;
 「.emacs」と「.emacs.el」が存在する場合、「.emacs」への記述は無視されるので注意が必要。(『LINUX WORDL 2003稔4月号』より)

自動改行を止める

 Vine では Emacs のデフォルトの設定は、80文字で自動改行されるようになっています。これはこれで便利なのでしょうし、かつては1行があまりにも長すぎると不都合があったのでしょうけれど、少なくとも今の僕にとっては、自動的に改行されると、後々の検索やなんやかやで不都合があるので、これを止めています。

設定方法

;; 一行が 80 字以上になった時には自動改行する
(setq fill-column 80)
(setq text-mode-hook 'turn-on-auto-fill)
(setq default-major-mode 'text-mode)

 上記の部分をコメントアウトする。あるいは、

(setq fill-column 80)
(setq text-mode-hook '(lambda () (auto-fill-mode 0)))
(setq default-major-mode 'text-mode)

 この記述に変更しても、いいかも。

カーソルの移動を表示にあわせる

 表示行でカーソルが移動するための設定。自動改行を止めているため、特に上下のカーソル移動が表示行で行われないと結構混乱するため、この設定は僕にとっては必須です。

入手先

寺川愛印のHomepage : http://applause.elfmimi.jp/
 上記ページで提供されている「ce-scroll.el」が必要なファイル。ただし、ce-scroll.el の実体は、「http://www.tky.3web.ne.jp/‾applause/emacs-lisp/」にあるので注意。

設定方法

  1. ce-scroll.el を Emacs のライブラリ群が入っているディレクトリに入れる。僕は、「/usr/share/emacs/site-lisp/」に入れています。
  2. 「.emacs.el」に下記の記述を加える。
(load "/usr/share/emacs/site-lisp/ce-scroll.el")  

シェルモードでの LS カラー表示の不具合回避

 現状、Emacs のシェルモードはカラー表示に対応していないため、LS を使うと、カラー情報そのものが表示されてしまう。
 これを回避するには、シェルの設定ファイル(Bash なら .bashrc)に、下記の記述を加える。

設定方法

if [ ${TERM} = "dumb" ] ; then
  alias ls='ls -F' 
fi

 "dump" 部分は Emacs のシェルモードで echo $TERM し、$TERM にセットされている値を記述する。

色関係

リージョン部分に色を付ける

(setq transient-mark-mode t)

各種モード

Rubyモード

 Ruby スクリプトを作成するときのモード

【設定方法】
 「ruby-mode.el, inf-ruby.el, rubydb2x.el, rubydb3.el」を「/usr/share/emacs/site-lisp/ruby-mode/」にコピーして「.emacs.el」に、下記の記述を追加。

(autoload 'ruby-mode "ruby-mode"
  "Mode for editing ruby source files")
(setq auto-mode-alist
      (append '(("¥¥.rb$" . ruby-mode)) auto-mode-alist))
(setq interpreter-mode-alist (append '(("ruby" .ruby-mode))
                                     interpreter-mode-alist))
(autoload 'run-ruby "inf-ruby"
  "Run an inferior Ruby process")
(autoload 'inf-ruby-keys "inf-ruby"
  "set local key defs for inf-ruby in ruby-mode")
(add-hock 'ruby-mode-hook
          '(lambda ()
            (inf-ruby-keys)
          ))

RD モード

 Ruby 用のドキュメント形式 RD を作成するときのモード

【設定方法】
 RD-Tools を展開したディレクトリにある「utils/rd-mode.el」を「/usr/share/emacs/site-lisp/」にコピーして「.emacs.el」に下記の記述を追加。

;;; RD-mode
(global-font-lock-mode 1 t)
(autoload 'rd-mode "rd-mode" "major	mode for ruby document formatter RD" t)
(add-to-list 'auto-mode-alist '("¥¥.rd$" . rd-mode))

各種情報


利用方法

ChangeLog

 ソフトウェア開発の世界では、変更履歴を「ChangeLog」として記録しておく習慣があるようです。Emacs では、これを支援するために、「C-x 4 a」で、

2003-03-27 Masaya Tomikura <vzx01036@nifty.ne.jp>

    * 変更したファイル
    変更内容

のように定型で記録する機能があります。前述のように元々はソフトウェアの開発場面で使われていたのですが、これって日常的なメモ書きとしても、結構有効だと思います。

設定方法

; ChangeLog
(setq user-full-name "Masaya Tomikura")
(setq user-mail-address "vzx01036@nifty.ne.jp")
(defun memo ()
  (interactive)
  (let ((add-log-current-defun-function 'ignore)
        (memo-file "‾/work/memo.txt"))
    (set-buffer (find-file-noselect memo-file))
    (add-change-log-entry
     nil
     (expand-file-name memo-file))))
(define-key ctl-x-map "M" 'memo)

 「user-full-name」のところに自分の名前、「user-mail-address」のところに自分のメールアドレス、「memo-file」のところにメモを残すファイル名を記述しておきます。

利用方法

C-x M
設定したファイルにChangeLogメモを取る。
C-x 4 a
ChangeLog を起動したファイルのあるディレクトリにChangeLogファイルを作成してメモを取る。

各種情報


howm

 「一人お手軽 Wiki もどき」ということで、断片的にとったメモを活用する環境。
 メモだけでなく、スケジュール管理や ToDo 管理としても、かなり便利。少なくとも僕は早くも手放せない状態になっています。

入手先

Hitori Otegaru Wiki Modoki : http://howm.sourceforge.jp/index-j.html

設定方法

  1. ダウンロードしてきたものを展開し、以下のように所定のディレクトリに入れる。
tar xvzf howm-x.x.x.x.tar.gz
cd howm-x.x.x.x
mkdir ‾/howm
cp ja/*.howm ‾/howm
mkdir -p ‾/elisp/howm
cp *.el ‾/elisp/howm

 あるいは、下記でも可。

tar xvzf howm-x.x.x.x.tar.gz
cd howm-x.x.x.x
./configure
make
su
make install
  1. Emacs の設定ファイルに以下を記述。
(setq howm-menu-lang 'ja)
(add-to-list 'load-path "‾/elisp/howm")
(global-set-key "¥C-c,," 'howm-menu)
(autoload 'howm-menu "howm-mode" "Hitori Otegaru Wiki Modoki" t)

 細かい設定は、http://howm.sourceforge.jp/README-j.html を参考にして記述する。僕自身の howm 関連の設定は下記の通りです。

僕の設定
; howm 設定
(setq howm-menu-lang 'ja)
(add-to-list 'load-path "‾/elisp/howm")
(global-set-key "¥C-c,," 'howm-menu)
(autoload 'howm-menu "howm-mode" "Hitori Otegaru Wiki Modoki" t)
(setq howm-menu-refresh-after-save t) ; save 時にメニューを自動更新
(setq howm-list-title t) ; タイトルを表示
(setq howm-view-summary-persistent nil) ; 一覧バッファを消す. C-u して [return] だと, 一覧を残す.

;; メニューファイルを直接指定
(setq howm-menu-top nil)
(setq howm-menu-file "0000-00-00-000000.howm")

;; 予定とToDoの表示数
(setq howm-menu-schedule-days-before 0)  ;; 今日から
(setq howm-menu-schedule-days 14)  ;; 2週間後まで
(setq howm-menu-todo-num 50)

利用方法

 「C-c ,,」でメニューが起動するので、後は適当に。

記述方法
goto リンク
「>>> キーワード」と記述すると、他のメモの中の「キーワード」へのリンクとなる。
come-from リンク
「<<< キーワード」と記述すると、他のメモ中の「キーワード」からのリンク先となる。
予定
「[yyyy-mm-dd]@ メモ内容」と記述すると、yyyyy-mm-dd の予定として表示される
覚書
「[yyyy-mm-dd]- メモ内容」と記述すると、yyyyy-mm-dd に表示が開始され、徐々に下の方に移動する。
ToDo
「[yyyyy-mm-dd]+ メモ内容」と記述すると、yyyy-mm-dd に表示が開始され、徐々に上の方に移動する。
締切
「[yyyyy-mm-dd]! メモ内容」と記述すると、yyyyy-mm-dd に近づくと表示が開始され、徐々に上の方に移動する。

各種情報


このページのTop

とみくら まさや(vzx01036@nifty.ne.jp) $ Date: 2003/03/26 $