xyzzy は、いわゆる「テキストエディタ」です。テキストデータを編集して、ファイルに読み書きするためのソフトウェアですね。Microsoft Word や一太郎などとは異なり、体裁を整えたりするパブリッシングに関係した機能は搭載されていません。というのも、テキストエディタというものは単にテキストデータを編集するためだけのソフトウェアなのですから。メモ帳を考えてくれればいいでしょう。xyzzy はあの類のソフトウェアといえます。
ただ、xyzzy がメモ帳などと大きく異なっている点は、テキストエディタであると同時に Lisp インタプリタでもあるというところです。emacs というエディタを御存知でしょうか? アレを知っているのでしたら、xyzzy は emacs を真似たもの、と言えばすぐにわかるでしょう。知らない方は……えーと。まぁ、世の中に Lisp という名前のプログラミング言語がありまして、xyzzy はそのプログラムを走らせることができるんだなぁ、と理解してください。
エディタでプログラムを走らせられる、というメリットを理解できる方は、迷わず xyzzy を使いましょう。フリーです。
ちなみにこの xyzzy、使いこなすには「相当のスキル」がなければ無理です。いちおう Windows キーバインド (この言葉がわからない方は秀丸などを使いましょう…) にすることもできますけれど、やはり emacs バインドでしょう。というわけで、UNIX で emacs (Mule) を使い込んでいた方々、meadow (Windows 用 emacs) を使い込んでいた方々にお勧めです。
emacs より数倍高速で、使いやすさや機能も引けを取りません。ただし、頻繁にバージョンアップしているので仕様 (主に Lisp の仕様ですけれども) がコロコロ変わったりしています。emacs のように幅広いテストが行われているわけでもありませんので、その辺りは了解して使うようにしてください。
xyzzy の設定は三ヶ所で行われます。
まずひとつはメニューの「ツール(T)」にある「共通設定(C)...」です。次は xyzzy をインストールしたディレクトリの下にある site-lisp/siteinit.l という Lisp プログラムファイルです。最後はホームディレクトリにある .xyzzy です。順番に説明していきましょう。
まず共通設定の方から始めます。
「フォント」タブでは、使用するフォントを設定できます。が、ここで早速躓くことが多いです。文字セット(H)というコンボボックスがありますけれども、ここで選んだ文字セットに対してフォントを設定することができます。ですから、ASCII が選択されているときにフォントを変更しても、日本語フォントは変更されないということになります。このコンボボックスの値を「日本語」にして、フォントを設定しましょう。逆に、アルファベットだけ違うフォントを使いたい場合は ASCII を選択した状態でフォントを設定します。
で、下の方にあるASCII以外のサイズはおまかせ(R)もチェックしておきましょう。¥をバックスラッシュに変換(B)は好みに応じてチェックすればいいでしょう。わたしは
site-lisp/siteinit.l:
|
;; キーバインド (global-set-key #\C-/ 'undo) ;; インクリメンタルサーチ (load-library "isearch") ;; モードラインの設定 (setq-default mode-line-format "--%*- %b (%M) [%k:%l] %P %f [%i]") ;; Ruby-mode (load-library "ruby") (push '("\\.rb$" . ruby-mode) *auto-mode-alist*) (setq *ruby-indent-column* 2) ; インデント量を変える (load-library "ruby-lister") ;(setq *ruby-lister-rtags-path* "C:/ruby/rtags.rb") ; rtags.rbまでのパス (load-library "ruby-debug") (load-library "ruby-doc") ;; 括弧対応のハイライト (load-library "paren") (turn-on-global-paren) ;; 拡張fill (load-library "flex-fill") ;; 自動タイムスタンプ埋め込み (load-library "auto-time-stamp") (define-key ctl-x-map #\C-s 'save-buffer-with-time-stamp) |
|
.xyzzy:
|
;; C-mode indentation (setq c-indent-level 4) (setq c-continued-statement-offset 4) (setq c-brace-imaginary-offset 0) (setq c-brace-offset -4) (setq c-argdecl-indent 8) (setq c-label-offset -4) ;; C++-mode indentation (setq c++-indent-level 4) (setq c++-continued-statement-offset 4) (setq c++-brace-imaginary-offset 0) (setq c++-brace-offset -4) (setq c++-argdecl-indent 8) (setq c++-label-offset -4) ;; LaTeX mode (require "LaTeX") (add-hook '*LaTeX-mode-hook* '(lambda () (setq *LaTeX-ime-control* nil) ) ) ;; fill column (setq-default fill-column 70) ;; 'paren' library switch setting (setq-default *paren-highlight-only-paren* t) ;; (user-defined command) ;; insert header ID (require "timestmp") (export '(insert-header-ID)) (defun insert-header-ID ( id ) (interactive "sID : ") (with-output-to-selected-buffer (princ (concat "_" (concat id (format-date-string "_%Y%m%d%a_%H%M%S_")))) ) ) |
xyzzy にも情報交換のためのメーリングリストがあります。
作者の亀井氏もちゃんと見てくださっており、バグレポートや「こうしてくれー」要望などが飛び交っています。
たくさんの方々が xyzzy 用のライブラリを作っておられます。
ということで、わたしが使っているライブラリやそれに対する個人的なパッチなどを公開していきたいと思います。
まずは ruby-mode から。服部さん作で、こちら[ruby-mode]からダウンロードできます。
動作面ではとりあえず問題ないのですけれども、キーワードファイルがちょっと整っておらず、色つけできないキーワードが多くあります。そこでわたしが勝手にキーワードを増やしてみました。キーワードファイルのみをアップしておきますので、スクリプト本体は上記のリンクからダウンロードしてきてください。また、ここで提供しているキーワードファイルに関して作者の服部さんへ問い合わせするのは 絶対に やめてください。他の人に迷惑かけちゃダメよ。
というわけで、xyzzy Ruby-mode 用キーワードファイルです。
xyzzy メーリングリストや、ほかの WWW ページで発見したいろいろなテクニック、lisp コードなどを掲載していきます。