朝寝して宵寝するまで昼寝して時々起きて居眠りをする
xyzzyをはじめて起動する人は、最初から謎のバッファ(≒空のファイルのようなもの)が開かれているので、「なんだこれ?」と思ったりすると思うのですが、このバッファ(*scratch* バッファ)をメモ代わりにして、xyzzy の終了時に保存し、起動時に前回の終了時の状態を表示するようにすると意外と便利です。
以下はあちこちからもらってきたものの寄せ集めです。
これを.xyzzy などに書いてからxyzzyを再起動し、そのあと *scratch* に適当な文書を書き、xyzzy を終了 → 起動 してみてください。
;;;;;;;;;;;;;;;;;
;; ■ *scratch* をメモ代わりに使う。
;; *scratch* を終了時に保存
(add-hook '*kill-xyzzy-hook*
#'(lambda ()
(save-excursion
(set-buffer (find-buffer "*scratch*"))
(write-file "~/scratch")
; ~/memorandom フォルダに毎回日付と時刻が含まれるファイル名で
; 保存する場合はフォルダを作ってこの下2行をコメントアウト。(履歴もどき)
; (unless (equal (point-min) (point-max))
; (write-file (format-date-string "~/memorandom/%Y_%m_%d_%H%M_scratch.txt")))
)))
;; *scratch* を起動時にロード
(add-hook '*post-startup-hook*
#'(lambda ()
(save-excursion
(set-buffer (find-buffer "*scratch*"))
(insert-file-contents "~/scratch" t))))
;; *scratch* な場合は nil を返してkillさせない
(add-hook '*query-kill-buffer-hook*
#'(lambda ()
(if (and (not *kill-buffer-kills-scratch*)
(equal (buffer-name (selected-buffer))
"*scratch*"))
nil
t)))
私は2つのxyzzyを開いていたときなどうっかり~/scratchファイルの上書きをしてしまうことがあるので、xyzzy を閉じるときの状態も別に記録しています。(↑でコメントアウトしてある部分)
xyzzy でフレームを切り替えるためのショートカットキーを設定しました。
Alt + ← または Alt + → で次のフレームに切り替えられます。このショートカットが上書きされていることがあるので(www-mode など)Shift + Alt + ← 、 Shift + Alt + → でも同じ動作をします。
;;;;;;;;;;;;;;;;;; ;; ■ フレームの切り替え用ショートカットキー (global-set-key #\M-Right 'other-pseudo-frame) (global-set-key #\M-Left 'previous-pseudo-frame) (global-set-key #\M-S-Right 'other-pseudo-frame) (global-set-key #\M-S-Left 'previous-pseudo-frame)
個人的にはバッファの切り替えショートカットキーも必須です。Ctrl + Shift + PageUp, Ctrl + Shift + PageDown
;;;;;;;;;;;;;;;;;; ;; ■ バッファを切り替える (global-set-key #\C-S-PageUp 'move-previous-window) (global-set-key #\C-S-PageDown 'other-window)
パソコンでメモを取ることってありますか?
おいしいラーメン屋とか次の飲み会の会場候補とか、ネットで取ったチケットの振込先みたいな、たいしたことじゃないんだけど忘れないほうがいい情報って意外と沢山あります。
そういう断片的な情報を、xyzzy + howm でメモしていたのですが、メモの量が多くなるにつれてだんだん検索がもっさりもっさりしてくるようになりました。
howm というツールは「とにかくなんでも分類とかしないで書きとめて必要なときに検索したらいいじゃん!」というのが基本方針なので、検索が遅いとちょっと困る、というかだいぶ困るなぁ、と思いながらもなるべく検索を使わないように、検索するときはやさしい気持ちで検索することをこころがけていました。
ところが今日、軽い気持ちで howm-wrap-helper を入れたら、
しゅばっ!!
でした。体感速度がぜんぜん違う。
今までの検索速度を、人のいいおじいちゃん(76才)だとすると、今は24才リーマン営業ぐらいの体感速度です。
xyzzy + howm を使っている人にはかなりオススメです。
他のワードなどを入れていろいろ検索して見たのですが、正規表現での検索ではキーワード検索ほどの高速感はないようです。grep.exe の限界なんでしょうか…。
そしてhowmのメニュー表示も遅く感じます。(正規表現で検索しまくりなので当然だとは思いますが)もうメニューは使わなくなってしまったので特に不都合はないのですが、他の人がどうやって使っていんでしょうか。emacs環境だともう少し速かったりするのかは気になるところです。
現在の /howm ディレクトリは ファイル数:377、サイズ:812KB でした。
速くなるほかにも、
- 最近編集したメモ一覧(howm-list-recent)がちゃんと動く
- 検索履歴(howm-history)
- howm 専用フレームが使える
などの便利機能があります。
とりあえずお試しで全部入れて動かしていますが、フレームは自分の環境だとあまりメリットがないようです。
キーワード検索は検索履歴に記録するけど正規表現での検索は記録しないというのは仕様なんでしょうか?
検索が速くなる機能を使うには、grep.exe をパスが通ったところにおいておく必要があるのですが、自PCだと特にそういう決まった場所もなく、相対パスで動いてほしいのでちょっとだけ修正しました。
(setq *grep-command*
(concat (user-homedir-pathname)
"bin/grep.exe"))
(setq howm-view-grep-command (concat *grep-command* " -E"))
(setq howm-view-fgrep-command (concat *grep-command* " -F"))
ところで howm の読みがなは ほうむ らしいのですが、自分の中で「ほうん」と読んでいたらもう修正がきかなくなっていることに最近気がつきました。ほうんのほうが可愛いと思うんですがどうでしょう。
Xyzzy の basic-mode でインデント量を調整する方法です。
以下は4文字分の半角スペースでインデントする場合。
(add-hook 'ed::*basic-mode-hook*
#'(lambda ()
(set-tab-columns 4 (selected-buffer))
(setq ed::*basic-indent-level* (tab-columns))
(make-local-variable 'indent-tabs-mode)
(setq indent-tabs-mode nil)))
インデントの幅を変える場合は以下の行の4を2とか8とかに(set-tab-columns 4 (selected-buffer))タブでインデントしたい場合は、最後の行をnilからtに
(setq indent-tabs-mode t)
インデント関係で少しまとまっているページはこのへん