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



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

(書きかけ。というか頓挫したので大幅書き直し予定。)
#title("WindowsユーザーのためのEmacs入門(xyzzyによる)")

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

Meadowは、Windows向けのEmacsクローンのひとつ。
追記:結局、数年にわたって、xyzzyを使っていますが、いまだ最小限のキーボードショットカットとマウスが中心です。

#contents

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

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

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

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

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

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

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

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

*インストール [#b90c5dd8]

+ ここからダウンロード
--http://www.meadowy.org/meadow/
--Netinstall安定版のsetup-ja.exeをダウンロードする
--ダウンロードしたファイルを適当なフォルダに放り込む
--これはインストーラーを起動するだけで、これが本体をダウンロードする
+ダウンロードしたsetup-ja.exeを起動すると、ウィザードがスタートする
+ウィザードの最後で、install.exeを起動し(ややこしい)
--Meadowのコマンドラインで、作業用ディレクトリを指定する(例:\home)
--これで、Meadow起動用のショートカットアイコンが作成される
+それからさらにImageMagickをインストールする
+初期設定
--初期設定のためには、テキストエディタの操作を覚えなくちゃならない。
--だけどまだMeadowの操作を覚えていない。
--そんな場合は、既存のエディタで設定ファイル(.emacs)を作っても良いかも。
--設定ファイルができるまでは、日本語の表示や入力がおかしい。
+[[xyzzy - カスタマイズ可能で軽快な Windows 用テキストエディタ:http://xyzzy-022.github.com/]]からダウンロード
+ダウンロードしたファイルを解凍する
+これだけ。スタートメニューに登録したり、関連付けはしてくれないので、自分でヤル。

*困ったところ [#k953bc03]
-インストールウィザードだけでは、インストールが完了しない。
-メニューが日本語にならないのはナゼ? = 仕様
-そのままでは、日本語変換から入力できないゾ。 = 初期設定が必要
-コピペで文字化け = 初期設定が必要

* Windowsユーザーのためのヒント [#y389612a]

Emacsは、今となっては、あんまりにも独特すぎる。たぶん、パソコンが普及していなくて、ほとんdの人がワープロもテキストエディタも初めてという時代には、平気だったのだろうけど、21世紀には学習コストが高くて、やっぱり使いにくい。すでにコンピュータもテキストエディタもありふれたものなんだから、その流儀には合わせないと、効率が相当落ちます。そこで、Windowsっぽく使うための設定変更のヒント。

**ツールバー [#r6878f99]

「表示」-「ツールバー」-「標準」で表示される。

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

**ドラッグ&ドロップで編集する [#o07d6bdc]

共通設定を変更する

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

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

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

 (load-library "winkey")  #コピペとアンドウ

 (load-library "gates")  #全部Windows風

-再起動する
-参考 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

** 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の場合)。そこで、広い範囲の選択/切り取りは、次のようにEmacsの機能を使います。

+切り取り範囲の先頭で、C-Space(マーク)
+切り取り範囲の最後で、C-w(切り取り)
+挿入先で、C-y(貼り付け)

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

-[[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]] うおー、便利だ。

** Markdown対応と文字コード [#g0b56ace]

-[[Markdown 関連 - かきかたえんぴつ:http://empitsu.hatenablog.com/entry/2013/02/13/213205]]

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

Meadowは、Windows用テキストエディタなんだけど、操作がかなり独特。だから、最初の練習が肝心。楽器の弾き方を覚えるようなもんだろうか。身につけるまでは大変だけど、身体が覚えてしまえば、自由に音楽を生み出せるようになる(はず)。
さて起動したら、最初にチュートリアルをやります。

Emacsは、Windowsが生まれる前から、マウスを使わずに効率よくテキストを編集するツールとして高い評価を得てきた。だから操作の基本は、キーボードショートカット。オーバーラップ式のマルチウィンドウでさえない。マウスは、あんまり使わなくてもいいが、慣れているところは使ったほうがラクだと思う。
私の場合、全部読むのに4時間ほどかかりました。
メモを取ったり、実験しながらなので、それなりに集中力が必要になる。
その気になったときに、一気にやるのが良いでしょう。

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

全部読むのに、3-4時間かかった。メモを取ったり、実験しながらだけど、それなりに集中力が必要になる。その気になったときに一気にやったほうが良いんじゃないだろか。
Xyzzyでは、Emacsと少々異なるショートカットキーがあるので、注意しましょう。

+「Help」-「Emacs Tutorial(Choose language) 」
+エディタ下部に、"ja"と入力
**Emacsチュートリアル [#m304a129]

*操作一覧 [#m45a74eb]
iso-2022-jp版

-操作の中心はマウスではなく、キーボードショートカット
-Cキーは、Ctrlキー(を押しながら)
-Mキーは、Altキー(を押しながら)。または、Escキー(を押してから)
-複数のショートカットを組み合わせて使う場合は、画面下部の行に途中経過を表示
-この画面下部の行をエコーエリアとかミニバッファと呼ぶ(ことがある)
&ref(meadow_TUTORIAL.ja.txt);

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

**ファイル [#yca8110b]
-ファイルを開くまたは新規作成 「C-x」-「C-f」-(ファイル名)
--新規作成する場合も、最初にファイル名を指定している。
-上書き保存する「C-x」-「C-s」
-指定したバッファを保存 「C-x」-「s」-(ファイル名)
&ref(meadow_TUTORIAL.ja_sjis.txt);

 ミニバッファでは、上下矢印キーで履歴を表示する。
 ファイル名(あるいはウィンドウ名とかバッファ名)は、一番下のモードラインに表示されている。
-[[tutorial_1]]
-[[tutorial_2]]
-[[tutorial_3]]
-[[tutorial_4]]

**終了 [#m693d684]
-「C-x」-「C-c」
**アドバイス [#o85aaf14]

**ウィンドウとバッファ [#od6cae5d]
-バッファをひとつにする 「C-x」「1」
-バッファを切り替える 「C-x」-「C-f」-(ファイル名) 
--つまり、ファイルを開くのと同じ
--あるいは、「C-x」-「b」-(バッファ名)
-開いているバッファの一覧を表示 「C-x」-「C-b」 Buffer
Emacsはテキストエディタなんだけど、Windowsの操作体系からするとかなり独特。だから、最初の練習が肝心。楽器の弾き方を覚えるようなもんだろうか。身につけるまでは大変だけど、身体が覚えてしまえば、自由に音楽を生み出せるようになる(はず)。

 Emacsは、テキストファイルなどをバッファという単位で記憶している。
 バッファは、ウィンドウの中に複数に区切って表示できる。
 でも、最初は1つだけ。
Emacsは、Windowsが生まれる前から、効率よくテキストを編集するツールとして高い評価を得てきました。だから操作の基本は、キーボードショートカット。オーバーラップ式のマルチウィンドウでさえありません。これは当時マウスがほとんど普及していなかったため。

**キャンセル [#ld029d89]
-アンドゥ 「C-x u」または「C-_」(つまり、Ctrl+Shift+(バックスラッシュ))
--ツールバーのアンドゥボタンも使える(なんて分かりやすい)。
--前置引数も使える
--再入できないモノも元に戻せる。
-操作のキャンセル「C-g」
-使用不可コマンド 確認行が表示されたら「スペース」or「n」
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
--文末 「M-e」 End
-ファイル
--先頭 「M-<」(つまり「Alt+Shift+,」)
--末尾 「M->」(つまり「Alt+Shift+.」)
チュートリアルでは、ごく当たり前のことも説明しています。文字の入力や削除方法とか、ページの右端まで入力したら、どのように行が折り返すとか。これは当時、ワードプロセッサも一般的でなかったため。

 「PgUp」や「PgDn」、矢印キーも使用可。スクロールバーやマウスホイールも有り。
 でもホームポジションから遠い。
一方で、定番のWindows用テキストエディタとは、コンセプトが異なる機能も多数。

**挿入 [#f3c26504]
 普通のテキストエディタと同様。
 前置引数が使えます。
だから、こういうクラシカルなところは、気にとめないで素直な気持ちでザクザク読みましょう。

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

-文字
--カーソル前の文字を削除 「Backspace」
--カーソル位置の文字を削除 「C-d」または「Delete」 Delete
-単語
--カーソル前の単語を削除 「M-Backspace」
--カーソル位置の単語を削除 「M-d」
-行
--カーソル位置から行末までを削除 「C-k」 Kill
-段落
--カーソル位置から段落末までを削除 「M-k」 Kill
-範囲を指定して削除
--マウスでドラッグして、「Delete」
--範囲の先頭で「C-@」あるいは「C-(Spc)」、範囲の末尾で「C-w」
チュートリアルを読みながらまとめた、基本操作のリファレンス。

 消去(kill)と削除(delete)の違いに注意。
 deleteしたものは、再挿入できない(アンドゥで戻るけど)。
 消去(kill)したものを、再挿入することを再入(ヤンク:Yanking)と呼ぶ。
[[リファレンス>xyzzy_reference]]

**再入(ヤンク?) [#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つさかのぼる
*参考リンク [#e380e906]

**コマンドの拡張 [#u721ad05]
-「C-x」-「(コマンドキー)」
--例:「C-x」-「C-f」-(ファイル名)
-「M-x」-「(コマンド名)」
--例:「M-x」-「replace-string」-(検索語)-(置換語)
ちょっと調べるといろいろ出てきます。

**そのほか [#f9951bc2]
-画面の書き直し 「C-l」 (カーソル位置が画面中央に来る)
-数値入力 「C-u」-「(数値)」または「M-(数値)」
--前置引数、つまりこの後の操作を複数回繰り返す
--例:「C-u」-「3」-「C-n」3行次へ移動する
--例:「C-u」-「3」-「C-b」3文字前へ移動する
--例:「C-u」-「3」-「*」***を入力
** Xyzzy [#o59658b9]

*参考リンク [#e380e906]
-[[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
-Emacsクイックリファレンス
--http://www.unixuser.org/~euske/doc/emacsref/
-Emacs-wikipedia
--http://ja.wikipedia.org/wiki/Emacs
-xyzzyオフィシャル
--http://www.jsdlab.co.jp/~kamei/
-xyzzy page
--http://www.jsdlab.co.jp/~kei/xyzzy/
-xyzzy wiki
--http://xyzzy.s53.xrea.com/wiki/


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