Xyzzy/StartUp

Last-modified: 2007-12-30 (日) 23:50:03

.xyzzyの話。

インクリメンタルサーチ

インクリメンタルサーチ(漸増検索とでもいうのか)は、Emacs系エディタの華である。これがなければ使いたい気も半分がた失せる。嘘だけど。

ただしxyzzyのデフォルトはインクリメンタルサーチが無効らしい。isearchライブラリをロードする必要がある。

(require "isearch")

インクリメンタルサーチで正規表現を使う

(setq *isearch-scanner-hook*
      #'(lambda (p)
          (setq ed::*isearch-regexp* t)
          p))

これは便利。ただし、migemoと競合する。

migemo

Migemoもえらくひどく便利。順番はisearchをロードした後。

(require "migemo")
; (migemo-toggle)
(defun mgm ()
  (interactive)
  (migemo-toggle))

migemoをrequireした後(migemo-toggle)してしまうと、漸増検索がmigemoモードになる。これは自分の使い方とはちょと違うんでオフにしてある。migemoしたい時にオンする。関数mgmはそのためのもの。ESC-x mig<TAB>より1ストローク短い。笑。

Shift-Tabでバッファ移動

この辺はsiteinit.lに書いといてもいいもの。

誰かのウェブページに載ってた。xyzzyではシフト+タブをそのままキーイベントとして扱えないらしく、extended-key-translate-table (拡張キー変換テーブルとでもいうのか) に適当な(実在しない)キーを割りつけ、シフト+タブが押されたらそのキーイベントが発生したことにしておく。

その上で、その実在しないキーイベントをglobal-set-keyする。

(set-extended-key-translate-table exkey-S-tab #\S-F24)
(global-set-key #\S-F24 'next-buffer)

my-insert-date-string

組込みのinsert-date-stringはダイアログボックスから書式を選択できるのだけど、せっかくテキストエディタを使っているのにいちいちダイアログを触るのは面倒だ。大体、書式をその都度選択する必要も自分にはあまりないし。

ということで、timestmp.lを覗いたりして自作。何のことはない、現在時刻を書式化して現在のバッファのポイントに挿入するだけ。

(defun my-insert-date-string ()
  (interactive)
  (insert (format-date-string "%Y.%m.%d %H:%M:%S")))

「現在の日付や時刻をテキストに挿入する」といったこと自体、自分は殆どやらないのは内緒。