Emacsは正式にはGNU Emacsといいグヌゥー イーマックス(微妙に発音難しいでもGは発音する)と読みます。
GNUというのはRichard M.Stallman(RMS)氏が率いるFree Software Foundation (FSF) のプロジェクトで、独占ソフトを打倒し、自由を達成しようというプロジェクトの様です(無知です(^_^;))。自由なOSも開発されています。GNUはGnu is Not Unixの意味です。あまり意味をなしませんがGNU系のソフトはこういう名前の付け方をされてるのが結構あります。
EmacsはRMS氏が開発したソフトで"Editor of MACroS"の略と文書には書かれています。単純にすれば、文書編集用の自動化プログラムを寄せ集めて作ったものって感じです。なので当初はエディター(Jeditとかみたい)だったのですが、現在ではEmacs Lisp(elisp)というプログラミング言語による拡張により、一つの統合環境とか、すでにOSとかいわれるまでになってます。最高にHackな逸品です。
Emacsは次のような特徴を持っています。
こんなかんじですね。欠点としては重たい事です・・・・。Linux(LinuxはUN|Xの親戚)上ではそれほどでも無いんですが、Mac版はかなり重たいです。ぼくの環境(iBook)で起動に1分近くかかります。でも最初に立ち上げてずーーーーーと立ち上がったままなのであまり気になりませんが(^_^;)
MacOS XではBSDカーネル(BSDっていうのもUN|Xの親戚(^_^;)、カーネルは根幹部分)が入っていて、Emacsが最初から入っています(OS X PB日本語版では/usr/binにある)。EmacsはUN|X的な感覚の影響がありますし、UN|X的概念の基礎理解には持って来いかもしれません。
ちなみにHack(ハック)というのは、(斧などで)叩き切るって意味ですが、大ざっぱな感じを意味する言葉の様です。「ハッカーは、雑でも正しいことをする。スーツどもは、綿密にまちがったことをやる」という格言もどきがありますが、hackの神髄はやや雑であっても最小限の努力で要求をきれいにクリアするものをつくりあげる。とにかくちゃんと動くって事です。
ぼくのサイトはhackにならないですね(^_^;)。。。最高にHackなサイトを作りたいんですが、単に雑なだけです。
でも普通はhackって単語は蔑称に使うものなんで、へたに使うと怒られると思いますけどね。
Mac版EmacsはAndrew Choi氏によって移植されたGNU Emacs20.6 for Mac d5が最新版です(2000.10.14現在)。
●標準配布版:http://www.csis.hku.hk/~choi/emacs/emacs-20.6-mac-bin-d5.smi.bin(約18M)
GPL(GNU public lisence)にしたがっているのでプログラムのソースコードも配付されています。
●ソースコードのみ:http://www.csis.hku.hk/~choi/emacs/emacs-20.6-mac-src-d5.smi.bin
●ソースとバイナリ:http://www.csis.hku.hk/~choi/emacs/emacs-20.6-mac-full-d5.smi.bin
プログラムに興味が無い場合は標準配布版のダウンロードで十分です。
フォントも入手しておいてください。このフォントがないとうまく起動しない場合もあります。
●フォント:http://www.csis.hku.hk/~choi/emacs/GNU-fonts.smi.bin
上記のサイトはまれに込んでいますし、パフォーマンスがあまりよいとは言えません。もしftpクライアントによるダウンロードを行うならftp://mac-emacs.sourceforge.net/pub/mac-emacs/をお奨めします。
StuffIt Expander5.0以上があれば解凍が可能です。デスクトップにマウントされたDiskImageを任意の位置にコピーしてください。できれば上位のフォルダ名に日本語を含まない場所にしてください。
フォントは、システムフォルダのフォントフォルダの中に入れてください。注意が出ると思いますがOKを押して構いません。
Emacのフォルダの中身は以下の様になっています(ちなみにこれはソースとバイナリ版の場合です)
macというフォルダのなかにあるEmacs CWというのがEmacsの本体です。
Emacs CWをダブルクリックすれば起動します。起動には時間がかかりますが、我慢しましょう(^_^;)。
起動すると以下の様になります。フォントが入ってないとエラーになったり、字が読めないので注意してください。
お決まりのように英語です。英語が読めなくても問題ないですが、読む努力はしてください。
なにかキーを押すと画面が移ります。アルファベット数字しか入力できませんが入力してみるのも良いかもしれません。うまく入力できない場合は、右上に出ていることえりマーク(他のFEPかもしれないけど)をクリックしてアメリカ国旗のマーク(Roman)に変えてから入力してみてください。
ウィンドウの上に自分のMacの名前がでます。画像をよく見るとぼくのパソコンはsakito.kunって名前だとわかります(^_^;)。この名前ははじめてMacを起動したときに付けてると思いますが、変更したい場合は、ファイル共有コントロールパネルで設定できます。
Emacsを終了するにはメニューのFileからQuitを選択してください。本当はこれは正式な終了方法では無いのですが、最初はこれで良いです。
当然ですが、どんなソフトも初期設定が必要です。
Emacsの初期設定はdot.emacsファイルでテキストに書いて行います。これはelispで書くのですが、取りあえずelisp知らなくても設定はできるように説明します。elispの説明は後でする予定です。
ます、Emacs CWと同じフォルダの中に、「.emacs」というファイルがあると思います。これをミミカキエディットとかで開いてください。決してダブルクリックして開かないでください!!
内容は本当にプログラミング言語って感じでわけわかりませんが、セミコロン(;)が行の先頭にあるのがコメントですので、それを読めばなにやってるかなんとなくわかると思います。結構ちゃんとコメントついてます。
Emacsは英語環境用に初期設定がされていますので、まずは日本語が利用できるようにします。
.emacs50行目あたりに
; Uncomment the following line to use Japanese.
; (set-language-environment 'Japanese)
;
; To use a Japanese input method supported by the Mac OS (e.g., Mac OS
; + the Japanese Language Kit), uncomment the following line
; (set-keyboard-coding-system 'sjis)
って行があります。 (set-language-environment 'Japanese)と(set-keyboard-coding-system 'sjis)の前にあるセミコロン(;)を取り除いて保存してください。これで次回の起動からことえりでもそのほかのFEPでも日本語が入力できるようになります。
ただ、現在インライン入力ができませんし、Emacsの機能が使い切れませんので、他の日本語変換ソフトをあとで導入します。
フォントの設定をする必要は有りません。ただし、font-lockをつかったりhilit19ってのを使うとinfoなどで一部の文字が文字化けするかもしれません。この場合は設定の変更が必要になります。
フォントの設定に関してはもうすこし後で説明します。
ぼくの.emacsを置いときます。dotemacs(2000.10.14版)。一部削りましたがだいたいこのままです。バイトコンパイルしてますが。
初期設定ができたら、再度Emacsを立ち上げて、Control+h t、と打ってください。ゆっくり打つと、1番下の1行ライン(ミニバッファ)にC-h tってでると思います。
日本語設定してあると日本語のEmacsのチュートリアルが出ますので、それにしたがって操作を練習してみるのが1番速いです。
背景色とフォントの色を変えることもできます。ぼくのdot.emacsをみればどこを直せばいいわかると思います。どんな色が使えるかわからない場合は、「etc」フォルダのrgb.txtを読むか、M-x list-colors-display<RET>(ショートカットの説明は以下にある)で実際の色が見られます。
注意としては、頭にピリオードが付くファイル名はMacでは推奨されてないのでNorton UtilitiesなどのDisk修復ソフトを使うとピリオードをアンダーバーにするように求められます。修正すると初期設定ファイルとして読み込めなくなりますので注意してください。
Emacs操作は全てショートカットで行います。ショートカットを覚えないと使えません(LinuxとかWinのEmacsにはメニューがついてるんですけどね)。
チュートリアルを一通りやるとわかると思いますが、このショートカット、Macのものとぜんぜん違いますので最初は戸惑うかもしれません。しかし、慣れると他のソフトのショートカットも全部これに合わせたくなります。
チュートリアルではキー操作がまとまっていないので以下にだいたいのショートカットを整理しておきます。標準的なテキストエディタのメニューに従ってみました。CはControlキー(鉛筆キー)、MはMetaキー(MacではCommandキー、リンゴキー)、<RET>はリターンキーの意味です。
操作内容 | キー |
---|---|
ファイル | |
新規作成 | C-x C-f (作成ファイル名入力) |
開く | C-x C-f (ファイル名入力) |
閉じる | C-x k (閉じないかぎり開いたまま) |
ファイル切り替え | C-x b (正確ではない、bufferの切り替え) |
開いてるファイル一覧 | C-x C-b (正確ではない、bufferの一覧) |
同じフォルダのテキスト | C-x C-d (M-x diredと同じ) |
保存 | C-x C-s |
別名で保存 | C-x C-w |
コマンド停止 | C-g (コマンドを間違えた場合等) |
emacsの一時停止 | C-z (Mac版ではエラー) |
終了 | C-x C-c |
編集 | |
アンドゥー | C-x u または C-/ |
カット | C-w |
コピー | M-w |
ペースト(ヤンク) | C-y (ペーストっていわないでヤンク) |
全て選択 | C-x h |
1文字前削除 | DEL |
カーソル選択文字削除 | C-d |
カーソル位置から行末まで削除 | C-k |
移動・ジャンプ | |
右へ移動 | C-f (forward) |
左へ移動 | C-b (backward) |
下へ移動 | C-n (next) |
上へ移動 | C-p (previous) |
選択行を画面中心へ | C-l (エル、本当は画面再描画) |
一画面下へ | C-v |
一画面上へ | M-v |
行頭へ | C-a |
行末へ | C-e |
前区切りへ | M-a (英語はピリオド、日本語は。が区切り) |
次区切りへ | M-e (英語はピリオド、日本語は。が区切り) |
文頭へ | M-< (Shiftを押しながらになる) |
文末へ | M-> (Shiftを押しながらになる) |
指定分繰り返す | C-u 数字 コマンド(C-u 8 C-nで8行移動) |
検索・置換 | |
順方向逐次検索 | C-s (文字を打つごとに文字先頭検索) |
逆方向逐次検索 | C-r (文字を打つごとに文字後方検索) |
置換 | M-% |
正規表現置換 | C-M-% |
ウィンドウ | |
上下に分割 | C-x 2 |
左右に分割 | C-x 3 |
選択画面のみ表示 | C-x 1 |
選択画面を消す | C-x 0 (ゼロです) |
画面移動 | C-x o (オーです) |
新規ウィンドウ作成 | C-x 5 2 (Mac版はエラーになります) |
選択ウィンドウのみ | C-x 5 0 (ゼロです) |
画面再描画 | C-l (エル、まれに画面が変になるので) |
そのほか | |
選択フォルダ内容を表示 | M-x dired<RET> |
フォルダ間の移動 | M-x cd<RET> (移動先入力) |
ヘルプ | |
チュートリアル | C-h t |
コマンドリスト | C-h a |
キー割当て表 | C-h b |
キーに対するコマンド | C-h c (キーを押す) |
キーに対するコマンド(詳細版) | C-h k (キーを押す) |
現在動作しているメジャーモード情報 | C-h m |
elisp変数説明 | C-h v |
elisp関数説明 | C-h f |
info内の文字列検索 | C-h C-k |
info内の関数説明検索 | C-h C-f |
入力文字履歴100文字分 | C-h l |
項目から説明を見つける | C-h p |
Emacsの変更履歴文書 | C-h n |
GNU GENERAL PUBLIC LICENS ver2表示 | C-h C-c |
Emacs新バージョン入手法に関して | C-h C-d |
GNUプロジェクトに関して | C-h C-p |
チュートリアル | C-h t |
他にもいっぱいあります。書き忘れは後日追加します。ここで紹介しきれなかったキーバインドはM-x describe-bindings<RET>で表示されます。読み切れませんが・・・。
キーの変更も可能ですが、ぼくの場合はなるべく汎用的に利用できるようにキーはなるべく変更してません。SKKやWL利用にキーを追加してるぐらいです。
基本的には大量のファイルを開くとC-x C-bとかで一覧を表示して、開きたいファイルにカーソルを合わせて<RET>するとそのファイルが開きます。開けるフィルの数はメモリーに依存します。
日本語のファイル名は利用しないほうがいいです。
関係ないけどMetaってどの指で押してます??ぼく最初親指でいま小指。
Emacsにはモードというのがあります(ミミカキエディットにもありますがちょっと違います)。メジャーモードやマイナーモードに別れます。メージャーモードはhtml-modeとかtext-modeとかあります。これは、そのモードに適したように動くようになってます。
とりあえず使ってみるといいです。font-lockもしくはhilit19の設定がしてあるとキーワードに色が付きます。C-x C-fでtest.cってファイルを作ると、cc-modeが起動します。例えば以下のように入力します。
#include <stdio.h>
int main(void){
printf ("Hello World");
return 0;
}
自動的に色が付くと思います。本当は色が付くだけではなくって、ミミカキエディットみたいにツールがあって、それぞれにショートカットが割り当てられてるんですが、そのあたりの説明は暇があったらやります。
EmacsLispの基本はぼくもなってないんで後日(^_^;)。
セミコロン(;)から後ろの1行がコメントってことだけわかれば何とかなる・・・つーかなんとかしちゃってる。動けばいいし、動かなくなったら、バックアップで元に戻して遊んでる。
SKKっていうのはローマ字入力による日本語入力/変換プログラム(FEP)です。Simple Kana to Kanji conversion programにちなんで名前が付けられています。本体部分がEmacs Lispのみで書かれているのでEmacsもしくは互換ソフトが動作する環境であればあらゆる場合に動作します。
Simpleという名前が付くことからわかるようにSimpleなんですが、その機能は非常に充実しています。手書きに近い感覚があって使いやすいです。
SKKには9.x系と10.x系が存在しますがEmacs20.6では10.x系しか動作しません。10.x系は開発途中バージョンなんですが動作的には問題ないです。
SKK10.xの動作にはAPEL9.22以降が必要です。APELはバージョンの異なるEmacs間の違いを吸収するためのelispのみでくまれたプログラムです。
まずAPELを入手します。
●ftp://ftp.m17n.org/pub/mule/apel/
●ftp://ftp.etl.go.jp/pub/mule/apel/
などから9.22以降のAPELを入手してください。ぼくが利用しているのはAPEL-10.2です。
次にSKKを入手します。
●http://openlab.ring.gr.jp/skk/maintrunk/
変換用辞書も必要です。
●http://openlab.ring.gr.jp/skk/dic/
ぼくが現在利用してるのは
skk10.59.tar.gz
SKK-JISYO.L-20000923.zipです。
.zipはStuffIt Expander5.0以上で解凍できます。.tar.gzはStuffIt Expander5.0+StuffIt Engineで解凍できます。むりだったらMacGzip探してください(^_^;)。。。ぼくのサイトに来てる人って検索能力ちゃんとしてそうですし・・・・・
注意としてはたまにダウンロードしたソフトによってはピリオードをアンダーバーにしちゃう物も有るようです。ちゃんともとのままの名前にしといてください。
解凍したファイルはEmacsに認識させる必要があります。認識にはload-pathの追加が必要です。load-pathっていうのはファイルを検索するフォルダを指定する設定です。
load-pathを追加するには幾つか方法があります。具体的な方法も書いときます。あとあと使えると思いますので。ぼくは1で設定してます。ちなみに~emacsっていうのはemacs-20.6のフォルダそのものです。このまま書いて認識されます。
上の設定してAPEL、SKKを設定した場所に放り込んだら.emacsに以下を書きます。
(setq load-path
(cons "skk" load-path))
(autoload 'skk-mode "skk" nil t)
(global-set-key "\C-x\C-j" 'skk-mode)
(global-set-key "\C-xj" 'skk-auto-fill-mode)
(global-set-key "\C-xt" 'skk-tutorial)
(setq skk-large-jisyo "~emacs/mac/dict/SKK-JISYO.L")
C-x C-jでSKKが起動します。操作法はチュートリアルをよんでください。うまくチュートリアルが見れない場合は直接開いて読んでください。
(setq skk-large-jisyo "~emacs/mac/dict/SKK-JISYO.L")は辞書の場所を設定してます。この場合、emacs-20.6フォルダのmacフォルダのdictフォルダを指定してます。任意に設定してください。
取りあえずこれで動作すると思いますが、起動が非常に遅いと思います。また、場合によっては起動しないかもしれません。この場合パイとコンパイルが必要です。次章を見てください。
バイトコンパイルを説明してるとプログラミング言語の話になるので、やめます。とにかくバイトコンパイルするとelispライブラリの起動が速くなります。バイトコンパイルすると.elcってなります。
バイトコンパイルの方法はいろいろ有るんですが、SKKはEmacs単体でまとめてバイトコンパイルできるようなファイルが入ってるのでそれを使います。
まず始めに、~skk/skk.elを書き換えないと個人辞書が上手く使えなので3927行目の
(rename-file tempo-file skk-jisyo 'ok-if-already-exists) )を
(copy-file tempo-file skk-jisyo 'ok-if-already-exists) )
って書き換えます。
次にSKKをバイトコンパイルすます。
1. M-x cd<RET>でskkフォルダ内に移動します。
2. M-x load-file<RET>SKK-MK
3. M-x eval-expression<RET>Eval:(SKK-MK-generate-autoloads-el)<RET>
これでうまくいきます。
APELのバイトコンパイルはややこしいので、割愛しときます。そのうちやるかも・・・とりあえず動きます。
Makefileってのがあるのでそれみたり、installって説明書読むしかないです。
diredというのはファイラー見たいなもので、フォルダ(ディレクトリ)構造を直接操作することができます。ここでファイルを消したり、フォルダを作成したりが簡単にできます。
M-x diredと打つと起動します。C-x dでも開きますが、ぼくの環境ではdired-modeにならない場合もあります。
また選択ウィンドウ意外で表示するには、C-x 4 d。 別のフレームに表示するにはC-x 5 dです(別フレーム表示はバグります)。
SPACEもしくはnで次のファイル、pで前のファイルにカーソルが当たります。むろんC-n、C-pも利用可能です。deleteキーだと、上移動で移動先ファイルのマークキャンセルになります。
diredでのファイル操作は基本的にマークをつけて実行することで行います。dで削除マークをつけ、xで実際に削除します。マーク段階では削除されません。xを打つと本当に削除するか尋ねてきますのでyes、noで答えてください。diredでの削除は本当に削除してしまいます。ごみ箱に入りませんので注意してください。
dマークの取り消しは、uで行います。もし一つ前のマークをキャンセルする場合は、DELの方が簡単です。
Shift-bでバイトコンパイルを行えます。複数ファイルをバイトコンパイルする場合は、mでマークしてからShift-bで一気にバイトコンパイルします。
その他にもいろいろな操作ができます。以下に一部を示しておきますので研究してみてください。
キー | 動作 |
---|---|
基本 | |
d | 削除マーク |
u | マークキャンセル |
x | マーク実行 |
Shift-b | バイトコンパイル |
m | 複数マーク |
ファイル操作 | |
% u | ファイル名を大文字にする |
% l | ファイル名を小文字にする |
% Shift-r fromname <RET> toname | fromからtoへリネーム |
% Shift-c fromname <RET> toname | fromかたtoにしてコピー |
% Shift-h fromname <RET> toname | fromからtoへハードリンク |
% Shift-s fromname <RET> toname | fromからtoへソフトリンク |
フォルダ間移動 | |
i | フォルダ内を表示 (1番下に追加されます) |
C-M-u | 親フォルダを表示 |
C-M-d | 最初のサブフォルダへ移動 |
C-M-n | 階層を無視して次のサブフォルダへ移動 |
C-M-p | 階層を無視して前のサブフォルダへ移動 |
更新 | |
g | 表示リフレッシュ (たまに変更が反映されないので) |
l | 指定ファイルの更新 (エルです) |
k | 指定ファイルの行削除(ファイルを削除するのではない) |
s | アルファベット順<->修正日順切り替え |
ほかにもいりいろあります。正規表現を使っていろいろできます。詳しいことは調べてください(^_^;)
アップルスクリプトを利用して、特定の拡張子を持つファイルを外部アプリケーションで開くことが可能です。設定は.emacsに書きます。
C-h iってやってみてください。font-lockとかhilit19などの設定がしてあると色が付きます。
リンクしてるところで<RET>するとその項目が見られます。SPCで読み進める事が可能です。利用感はHTMLとたいして変わりません。
.texiファイルから作ります。たとえばhoge.texiからinfoファイルを作成するには以下の用にします。
C-x C-f hoge.texi<RET>
M-x texinfo-format-buffer<RET>
と打つ。しばらくすると、保存するようにいってくるので、C-x C-sで保存します。
自分でかくにはtexi-modeで書くと楽です。
~emacs/info/dirを変更して追加します。
dirへの書き方は以下のようになります。
* 項目名称: (ファイル名称). 説明
書き方が変だとファイルが上手く見つかりません。ファイル名称は、.info拡張子を除いたもので大丈夫です。
辞書引きソフト
以下から入手できます。ぼくが利用しているのはsdic-2.1.2です。
●一時配布基:http://www-nagao.kuee.kyoto-u.ac.jp/member/tsuchiya/sdic/index.html
無論他の場所からも入手可能です。
辞書に関してはいろいろ有ります。ぼくが利用しているのは以下の物です。
●GENE95辞書(http://www.forest.impress.co.jp/dict.html#gene95)
● EDICT辞書(ftp://ftp.u-aizu.ac.jp/pub/SciEng/nihongo/ftp.cc.monash.edu.au/)
コンパイルをMac上でしないでLinuxでやったけど動いてます(^_^;)。GENE95辞書とEDICT辞書はSDICで使える形にしないとだめですが、Perlが動くならできなくは無いです。Mac上でのコンパイルは一様できるようですが、めんどっくさいです。そのうちパッケージみたいにして配付したいと思います。
以下の設定を.emacsに書いてください。
;;; sdicの設定
(autoload 'sdic-describe-word "sdic"
"英単語の意味を調べる" t nil)
(global-set-key "\C-cw" 'sdic-describe-word)
(autoload 'sdic-describe-word-at-point "sdic"
"カーソルの位置の英単語の意味を調べる" t nil)
(global-set-key "\C-cW" 'sdic-describe-word-at-point)
;; 検索結果ウィンドの幅の設定および動作設定
(setq sdic-window-height 10
sdic-disable-select-window t)
;; つかってるのはGene95とedictって辞書です
;; 本当はあといろいろ使ってます
(setq sdic-eiwa-dictionary-list '((sdicf-client "~/dict/gene.sdic"))
sdic-waei-dictionary-list '((sdicf-client "~/dict/jedict.sdic"
(add-keys-to-headword t))))
メールソフト
APEL、SEMI、FILMが必要。
起動はしてますが、送受信がまだできてません。
とりあえずリンク申請メールをだしてから・・・
とりあえずリンク申請メールをだしてから・・・
とりあえずリンク申請メールをだしてから・・・