Page 7 of 7: « 1 2 3 4 5 6 7





scratch をメモ代わりに使う on xyzzy

Posted at Wed, 26 Oct 2005 in computer::xyzzy

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 を閉じるときの状態も別に記録しています。(↑でコメントアウトしてある部分)

* ネタ元

tips/scratchの中身って消さなくてもいいじゃん - Xyzzy Wiki
http://xyzzy.s53.xrea.com/wiki/?cmd=read&page=tips%2Fscratchの中身って消さなくてもいいじゃん
tips/scratch をkill-bufferから保護 - Xyzzy Wiki
http://xyzzy.s53.xrea.com/wiki/?tips%2Fscratch%20をkill-bufferから保護


フレーム切り替え用ショートカットキー

Posted at Fri, 07 Oct 2005 in computer::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)


howm-helper on xyzzy が 速い!

Posted at Wed, 05 Oct 2005 in computer::xyzzy

パソコンでメモを取ることってありますか?
おいしいラーメン屋とか次の飲み会の会場候補とか、ネットで取ったチケットの振込先みたいな、たいしたことじゃないんだけど忘れないほうがいい情報って意外と沢山あります。

そういう断片的な情報を、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 を相対パスで

検索が速くなる機能を使うには、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 の読みがなは ほうむ らしいのですが、自分の中で「ほうん」と読んでいたらもう修正がきかなくなっていることに最近気がつきました。ほうんのほうが可愛いと思うんですがどうでしょう。

Link

howm-helper
http://megahurtz.bblog.jp/entry/231351/
(howm-helper のソース)
http://www.geocities.co.jp/Milano-Cat/2067/howm-init.html


basic-mode でのインデント幅設定 on xyzzy

Posted at Thu, 29 Sep 2005 in computer::xyzzy

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)

インデント関係で少しまとまっているページはこのへん

インデントの変更方法 @keiのlink page
http://www.jsdlab.co.jp/~kei/xyzzy/manual/basic/basic.html#basic_b_indent
C・C++ソースコードのインデントあわせ @keiのlink page
http://www.jsdlab.co.jp/~kei/xyzzy/xyzzy2.html#c_indent
インデントの設定 @しょぼしょぼすくりぷと xyzzy for programer
http://www.afis.to/~start/xyzzy/programing/indent.html