xyzzy のバックアップの現在との差分(No.6)



  • 追加された行はこの色です。
  • 削除された行はこの色です。
[[FrontPage]]

&size(20){WindowsユーザーのためのEmacs入門};
#title("WindowsユーザーのためのEmacs入門(xyzzyによる)")

Unix系のすごいプログラマの多くの人がEmacs(イーマックス)というテキストエディタ(というか統合デスクトップ環境)を使っているらしい。前からずっとモノにしたいと思って、何度か挫折しているんだけど、それを今回こそ何とかしてみようという記録です。昨夜、使い始めたばかりなんだけどね。
Unix系のすごいプログラマの多くの人がEmacs(イーマックス)というテキストエディタ(というか統合デスクトップ環境)を使っているらしい。前からずっとモノにしたいと思って、何度か挫折しているんだけど、それを今回こそ何とかしてみようという記録です。

追記:結局、数年にわたって、xyzzyを使っていますが、いまだ最小限のキーボードショットカットとマウスが中心です。

#contents

*なぜEmacsを使うのか [#ja1ba94c]

カッコ良さそうだから:-) そんなところから始めるのが良いんじゃないでしょうか。

あと、Emacsを覚えれば、Windows以外の環境でも良く似たエディタを見つけやすくなるんじゃないかと。

*どれを選ぶか。どのように学習するか [#f3699b8b]

Emacsには、いくつか種類がある。だから、使いやすいものを選ぶのが吉。

今回私は、xyzzyを使用した。これは、亀井哲弥さんが開発したWindows向けのEmacsクローンのひとつ。メニューは日本語化されているし、配布ファイルを解凍するだけで、すぐに使い始めることができる。最初はMeadowに使おうとしたけれど、結構手間がかかってしまったので路線を変更しました。
今回私は、xyzzyを使用しました。これは、亀井哲弥さんが開発したWindows向けのEmacsクローンのひとつ。メニューは日本語化されているし、配布ファイルを解凍するだけで、すぐに使い始めることができます。最初はMeadowを使おうとしたけれど、エディタとして使い始めるまで時間がかかってしまった(チュートリアルを終わらせても、まだ日本語入力できなかった)ので路線を変更しました。

一方で、xyzzyにはチュートリアルが付属していない。そこで、このページからEmacsのオフィシャルチュートリアルにアクセスできるようにしておきますんで読んでみてください。
一方で、xyzzyにはチュートリアルが付属していません。そこで、このページからEmacsのオフィシャルチュートリアルにアクセスできるようにしておきますんで読んでみてください。

それから、すでにWindowsで何かテキストエディタを使用しているなら、そのうちの良く使っている機能をリストアップしておくといいかも。そして、Emacsの対応機能を確認しておく(私の場合、意外と少なかった)。そこさえ押さえれば案外移行しやすい(かも)。

*インストール [#b90c5dd8]

+オフィシャルサイトから「Xyzzy version 0.2.2.235」をダウンロード
--http://www.jsdlab.co.jp/~kamei/
+ダウンロードした「xyzzy-0.2.2.235.lzh」を解凍する
+[[xyzzy - カスタマイズ可能で軽快な Windows 用テキストエディタ:http://xyzzy-022.github.com/]]からダウンロード
+ダウンロードしたファイルを解凍する
+これだけ。スタートメニューに登録したり、関連付けはしてくれないので、自分でヤル。

*チュートリアルを読もう[#z5fd95d3]

さて起動したら、最初にチュートリアルをやる。
* Windowsユーザーのためのヒント [#y389612a]

私の場合、全部読むのに4時間ほどかかりました。
メモを取ったり、実験しながらだけど、それなりに集中力が必要になる。
その気になったときに、一気にやるのが良いんじゃないだろか。
Emacsは、今となっては、あんまりにも独特すぎる。たぶん、パソコンが普及していなくて、ほとんdの人がワープロもテキストエディタも初めてという時代には、平気だったのだろうけど、21世紀には学習コストが高くて、やっぱり使いにくい。すでにコンピュータもテキストエディタもありふれたものなんだから、その流儀には合わせないと、効率が相当落ちます。そこで、Windowsっぽく使うための設定変更のヒント。

以下は、Meadow2.10.8に付属していたチュートリアルの日本語版。オリジナルは文字コードが「iso-2022-jp」だったので、シフトJIS版も用意しました。これをエディタに読み込んで、読みながら操作してみよう。
**ツールバー [#r6878f99]

Xyzzyでは、Emacsと少々異なるショートカットキーがあるので、注意しよう。
「表示」-「ツールバー」-「標準」で表示される。

**Emacsチュートリアル [#m304a129]
**キー割り当て一覧 [#dcb1240b]
「ヘルプ」-「キー割り当て一覧」で表示される。
-[[キー割り当て一覧>xyzzy/key_map]]

iso-2022-jp版
**ドラッグ&ドロップで編集する [#o07d6bdc]

&ref(meadow_TUTORIAL.ja.txt);
共通設定を変更する

sjis版
+「ツール」-「共通設定」
+「さまざま」タブを選択
+"D&D編集する"をオンにする

&ref(meadow_TUTORIAL.ja_sjis.txt);
** キー割り当てを変更する [#td911e7f]
Windowsの標準キー割り当てを利用するためには(コピペとか)、キーバインドを変更する必要があります。そのための設定ファイルが用意されているので、それを使えばいい。ただし、オリジナルの設定と重なっているところがあり、それが使えなくなる場合があるので注意しましょう。たとえば、winkey.lという設定ファイルでは、範囲選択中に「C-c」「C-x」が使えません。

**アドバイス [#o85aaf14]
-.xyzzyファイルの作成
++xyzzyの空ファイルを「.xyzzy」というファイル名で保存する。
++保存先は、とりあえず、xyzzy.exeと同じ場所。
-環境変数を設定する
++マイコンピュータを右クリック->「プロパティ」
++「詳細設定」タブ->「環境変数」ボタンをクリック
++「ユーザー環境変数」の「新規」ボタンをクリック
---変数名:XYZZYHOME
---変数値:(.xyzzyファイルを置いてある場所 例:C:\Documents and Settings\(user)\My Documents\_tools\xyzzy)
-「.xyzzy」ファイルに次行のどちらかを記述する

Emacsはテキストエディタなんだけど、Windowsの操作体系からするとかなり独特。だから、最初の練習が肝心。楽器の弾き方を覚えるようなもんだろうか。身につけるまでは大変だけど、身体が覚えてしまえば、自由に音楽を生み出せるようになる(はず)。
 (load-library "winkey")  #コピペとアンドウ

Emacsは、Windowsが生まれる前から、効率よくテキストを編集するツールとして高い評価を得てきた。だから操作の基本は、キーボードショートカット。オーバーラップ式のマルチウィンドウでさえない。これは当時マウスがほとんど普及していなかったため。
 (load-library "gates")  #全部Windows風

Emacsは、キーボードショートカットを使いこなすと、どんどん効率が上がっていく(らしい)。まあ、使えるところはマウスを使ってラクしたほうがいいけどね。
-再起動する
-参考 xyzzy wiki - quick tour
--[[.xyzzyファイルを作り、環境変数を設定する:http://xyzzy.s53.xrea.com/wiki/index.php?QuickTour%2F%C3%D6%A4%AD%BE%EC%BD%EA%A4%F2%B7%E8%A4%E1%A4%EB]]
--[[キー割り当て一覧>xyzzy/key_map]]
--新しいキーバインドを調べるには、次のファイルを参照

チュートリアルでは、ごく当たり前のことも説明している。文字の入力や削除方法とか、ページの右端まで入力したら、どのように行が折り返すとか。これは当時、ワードプロセッサも一般的でなかったため。
 xyzzy.exeのあるフォルダ内の、$XYZZY/lisp/winkey.l または $XYZZY/lisp/Gates.l

一方で、定番のWindows用テキストエディタとは、コンセプトが異なる機能も多数。
** Emacsの編集キー割り当て [#p0b0a47c]

だから、こういうクラシカルなところは、気にとめないで素直な気持ちでザクザク読もう。
|機能|Windows|Emacs|
|切り取り|C-x|C-Space -> C-w|
|コピー|C-c|C-Space -> Alt-w|
|貼り付け|C-v|C-y(直後にAlt-yで履歴を貼り付け)|
|やり直し|C-z||

**Xyzzyを便利に使うヒント [#y389612a]
マウスでドラッグすれば、その範囲をコピーしたり削除できるんだけど、スクロールすると範囲が消えてしまいます(xyzzyの場合)。そこで、広い範囲の選択/切り取りは、次のようにEmacsの機能を使います。

-ツールバーは、「表示」-「ツールバー」-「標準」で表示される。
-キー割り当て一覧は、「ヘルプ」-「キー割り当て一覧」で表示される。
--[[キー割り当て一覧>xyzzy/key_map]]
+切り取り範囲の先頭で、C-Space(マーク)
+切り取り範囲の最後で、C-w(切り取り)
+挿入先で、C-y(貼り付け)

*基本操作の一覧 [#m45a74eb]
**マウスホイールの画面スクロール時、セレクション解除を防止 [#kcbad96a]

-操作の中心はマウスではなく、キーボードショートカット
-Cキーは、Ctrlキー(を押しながら)
--「C+x」は、Ctrlキーを押しながら「x」を押す
-Mキーは、Altキー(を押しながら)。または、Escキー(を押してから)
--「M-x」は、Altキーを押しながら「x」を押すか、Escキーを押してから「x」を押す
--「Esc-x」は、Escキーを押してから「x」を押す
-複数のショートカットを組み合わせて使う場合は、画面下部の行に途中経過を表示
-この画面下部の行をエコーエリアとかミニバッファと呼ぶ(ことがある)
-Xyzzyは、チュートリアルの記述と一部動作が異なる
-[[tips/マウスホイールで画面をスクロールさせてもセレクションを解除されないようにする - XyzzyWiki:http://xyzzy.s53.xrea.com/wiki/?tips%2F%A5%DE%A5%A6%A5%B9%A5%DB%A5%A4%A1%BC%A5%EB%A4%C7%B2%E8%CC%CC%A4%F2%A5%B9%A5%AF%A5%ED%A1%BC%A5%EB%A4%B5%A4%BB%A4%C6%A4%E2%A5%BB%A5%EC%A5%AF%A5%B7%A5%E7%A5%F3%A4%F2%B2%F2%BD%FC%A4%B5%A4%EC%A4%CA%A4%A4%A4%E8%A4%A6%A4%CB%A4%B9%A4%EB]] うおー、便利だ。

**起動 [#f029d8ca]
-スタートメニューから呼び出したり、ショートカットアイコンをダブルクリックしたり。
-ただし、デフォルトで開かれたウィンドウは、まっさらなテキスト編集領域ではない。
--Meadowなどでは、これをそのままで保存できない。
--テキストを作成し始める前に、テキストファイル名を指定する。
** Markdown対応と文字コード [#g0b56ace]

**ファイル [#yca8110b]
-ファイルを開くまたは新規作成 「C+x」-「C+f」-(ファイル名)
--新規作成する場合も、最初にファイル名を指定する。''(Xyzzyは不要)''
-上書き保存する「C+x」-「C+s」
-指定したバッファを保存 「C+x」-「s」-(ファイル名)
-[[Markdown 関連 - かきかたえんぴつ:http://empitsu.hatenablog.com/entry/2013/02/13/213205]]

 ミニバッファでは、上下矢印キーで履歴を表示する。
 ファイル名(あるいはウィンドウ名とかバッファ名)は、一番下のモードラインに表示されている。
*チュートリアルを読もう[#z5fd95d3]

**終了 [#m693d684]
-「C+x」-「C+c」
さて起動したら、最初にチュートリアルをやります。

**ウィンドウとバッファ [#od6cae5d]
-バッファをひとつにする 「C+x」-「1」
-次のバッファに切り替える 「C+x」-「o」
-バッファを指定して切り替える 「C+x」-「C+f」-(ファイル名) 
--つまり、ファイルを開くのと同じ
--あるいは、「C+x」-「b」-(バッファ名)
-開いているバッファの一覧を表示 「C+x」-「C+b」 Buffer
私の場合、全部読むのに4時間ほどかかりました。
メモを取ったり、実験しながらなので、それなりに集中力が必要になる。
その気になったときに、一気にやるのが良いでしょう。

 Emacsは、テキストファイルなどをバッファという単位で記憶している。
 バッファは、ウィンドウの中に複数に区切って表示できる。
 でも、最初は1つだけ。
以下は、Meadow2.10.8に付属していたチュートリアルの日本語版。オリジナルは文字コードが「iso-2022-jp」だったので、シフトJIS版も用意しました。これをエディタに読み込んで、読みながら操作してみましょう。

**キャンセル [#ld029d89]
-アンドゥ 「C+x u」または「C+_」(つまり、Ctrl+Shift+(バックスラッシュ)) ''Xyzzyは、C+\''
--ツールバーのアンドゥボタンも使える(なんて分かりやすい)。
--前置引数も使える
--再入できないモノも元に戻せる。
--''Xyzzyは、C+_でやり直し''
-操作のキャンセル「C+g」
-使用不可コマンド 確認行が表示されたら「スペース」or「n」
Xyzzyでは、Emacsと少々異なるショートカットキーがあるので、注意しましょう。

**移動 [#ydf4ba8f]
-ページ
--次ページ 「C+v」
--前ページ 「M-v」
-文字
--次の文字 「C+f」 Foward
--前の文字 「C+b」 Back
-単語
--次の単語 「M-f」 Foward
--前の単語 「M-b」 Back
-行
--次の行 「C+n」 Next
--前の行 「C+p」 Prev
--行頭 「C+a」 Ahead
--行末 「C+e」 End
-段落
--文頭 「M-a」 Ahead (Xyzzyは「M-{」 つまり、ESC-Shift-})
--文末 「M-e」 End (Xyzzyは「M-}」 つまり、ESC-Shift-{)
-ファイル
--先頭 「M-<」(つまり「Alt+Shift+,」)
--末尾 「M->」(つまり「Alt+Shift+.」)
**Emacsチュートリアル [#m304a129]

 「PgUp」や「PgDn」、矢印キーも使用可。スクロールバーやマウスホイールも有り。
 でもホームポジションから遠い。
iso-2022-jp版

**挿入 [#f3c26504]
 普通のテキストエディタと同様。
 前置引数が使えます("そのほか"を参照のこと)。
&ref(meadow_TUTORIAL.ja.txt);

**削除 [#q274abdb]
sjis版

-文字
--カーソル前の文字を削除 「Backspace」
--カーソル位置の文字を削除 「C+d」または「Delete」 Delete
-単語
--カーソル前の単語を削除 「M-Backspace」
--カーソル位置の単語を削除 「M-d」
-行
--カーソル位置から行末までを削除 「C+k」 Kill
-段落
--カーソル位置から段落末までを削除 「M-k」 Kill ''(Xyzzyは動作せず)''
-範囲を指定して削除
--マウスでドラッグして、「Delete」
--範囲の先頭で「C+@」あるいは「C+(Spc)」、範囲の末尾で「C+w」
&ref(meadow_TUTORIAL.ja_sjis.txt);

 消去(kill)と削除(delete)の違いに注意。
 消去(kill)したものは再挿入できる。これを再入(ヤンク:Yanking)と呼ぶ。
 削除したものは、再挿入できない(アンドゥで戻るけど)。
-[[tutorial_1]]
-[[tutorial_2]]
-[[tutorial_3]]
-[[tutorial_4]]

**再入(ヤンク?) [#ib26d0ab]
-最後に消去したモノを再挿入 「C+y」
-以前に消去したモノを再挿入 「C+y」-「M-y」
-前置引数で「M-y」の記録を移動できる
--例:「C+y」-「M-y」-「M-y」-「M-y」-「C+u」-「3」-「M-y」最後を3つとばす
--例:「C+y」-「M-y」-「M-y」-「M-y」-「C+u」-「-2」-「M-y」最後から2つさかのぼる
**アドバイス [#o85aaf14]

**コマンドの拡張 [#u721ad05]
-「C+x」-「(コマンドキー)」
--例:「C+x」-「C+f」-(ファイル名)
-「M-x」-「(コマンド名)」
--例:「M-x」-「replace-string」-(検索語)-(置換語)
--このとき、ミニバッファにカーソルが移動する
-ミニバッファから抜け出す 「Esc」「Esc」
Emacsはテキストエディタなんだけど、Windowsの操作体系からするとかなり独特。だから、最初の練習が肝心。楽器の弾き方を覚えるようなもんだろうか。身につけるまでは大変だけど、身体が覚えてしまえば、自由に音楽を生み出せるようになる(はず)。

**そのほか [#f9951bc2]
-ヘルプ 「C+h」 ''(Xyzzyは動作せず 「ヘルプ」-「キー割り当て一覧」を参照)''
-画面の書き直し 「C+l」 (カーソル位置が画面中央に来る)
-数値入力 「C+u」-「(数値)」または「M-(数値)」「Esc-(数値)」が便利
--前置引数、つまりこの後の操作を複数回繰り返す
--例:「C+u」-「3」-「C+n」3行次へ移動する
--例:「C+u」-「3」-「C+b」3文字前へ移動する
--例:「C+u」-「3」-「*」***を入力
Emacsは、Windowsが生まれる前から、効率よくテキストを編集するツールとして高い評価を得てきました。だから操作の基本は、キーボードショートカット。オーバーラップ式のマルチウィンドウでさえありません。これは当時マウスがほとんど普及していなかったため。

Emacsは、キーボードショートカットを使いこなすと、どんどん効率が上がっていく(らしい)。まあ、使えるところはマウスを使ってラクしたほうがいいけどね。

チュートリアルでは、ごく当たり前のことも説明しています。文字の入力や削除方法とか、ページの右端まで入力したら、どのように行が折り返すとか。これは当時、ワードプロセッサも一般的でなかったため。

一方で、定番のWindows用テキストエディタとは、コンセプトが異なる機能も多数。

だから、こういうクラシカルなところは、気にとめないで素直な気持ちでザクザク読みましょう。

**基本操作の一覧 [#m45a74eb]

チュートリアルを読みながらまとめた、基本操作のリファレンス。

[[リファレンス>xyzzy_reference]]

*参考リンク [#e380e906]

ちょっと調べるといろいろ出てきます。

** Xyzzy [#o59658b9]

-xyzzyオフィシャル
-[[xyzzy - カスタマイズ可能で軽快な Windows 用テキストエディタ:http://xyzzy-022.github.com/]]
-オリジナル版開発者の亀井さんのサイト
--http://www.jsdlab.co.jp/~kamei/
-xyzzy page
--http://www.jsdlab.co.jp/~kei/xyzzy/
-xyzzy wiki
--http://xyzzy.s53.xrea.com/wiki
-xyzzy lisp プログラミング
--http://homepage2.nifty.com/coin/xyzzy_lisp_prog/index.html
-xyzzy FAQ
--http://www.netlaputa.ne.jp/~henmi/lisp/xyzzy/

** Emacs [#h413face]

-Emacs-wikipedia
--http://ja.wikipedia.org/wiki/Emacs
-Emacsクイックリファレンス
--http://www.unixuser.org/~euske/doc/emacsref/
-初心者向けHowto
--http://www.linux.or.jp/JF/JFdocs/Emacs-Beginner-HOWTO.txt

**Meadow [#i81cac22]

-Meadowオフィシャル
--http://www.meadowy.org/meadow/
-Meadow FAQ
--http://www.bookshelf.jp/texi/meadow-faq/meadow-faq.html
-Meadow設定メモ
--http://niwaken.s6.xrea.com/tips/meadow.html


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS