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





HyperEstraier でなにを検索していますか?

Posted at Tue, 08 Nov 2005 in computer::xyzzy

最近なにかと話題なので、全文検索システムHyper Estraier を使うためのソフト、Hyper Estraier Mode on XyzzyDesktopHE などを入れて動かしてみました。
確かに検索。たしかに高速。
WIndows で何かを検索する場合にはけっこう使えそうです。
でも今ひとつ用途が思いつきません。なにに使ったらいいんだろう……?

ということで、普段自分がローカル PC 及び LAN 上で行う検索について振り返ってみました。

Google Desktop
重いような気がしつつもいまだにタスクバーにこっそりいます。Googleで検索したときに一緒に検索してくれるのは一件便利なように見えて役にたったことは1回ぐらいしかありません。でもその1回はけっこう「おお!」っていう1回でした。
Grep on Xyzzy
xyzzy 標準のGrep機能。一番頻繁に使います。検索対象は主にプログラムのソースなど。正規表現もよく使う。
howm の検索機能
howm-wrap on xyzzy の検索機能…のさらに howm-helper 版。日常書くメモの類は全部 howm に放り込んでいるのでこの検索も重宝しています。
Grep on 秀丸
xyzzy がない環境などでたまに使います。
Windows 標準の検索機能
Win キー + F のやつです。なにに使っているのか良くわかりませんがたまに使います。フォルダを右クリックして「検索」することのほうが多いかもしれません。たいていファイル名での検索です。

ひるがえって estaier-mode の検索対象ファイルはこんな感じです。

まったくもって重複ポイントがありませんでした。私にとってはやや時期尚早なのかもしれません。
Windows 用の前文検索フロントエンドとしてはどちらも良かったので、そのうち便利な使い方が出てきたらまた引っ張り出そうかと思います。文章内で AND 検索や OR 検索をしたいという場面はたしかにあるような気がするので。


DesktopHE -Hyper Estraierを使用したWindows用デスクトップ検索ツール-
http://freemind.s57.xrea.com/desktophe/
Hyper Estraier Mode on Xyzzy
http://august.oor.jp/logs/estraier/estraier-help.html


xyzzy でバッファを閉じる

Posted at Wed, 02 Nov 2005 in computer::xyzzy

Landscape で xyzzy でバッファを閉じるには CTRL + x k という記事がありましたが、私は Ctrl + F4 でバッファが閉じられるようにしてあります。
以下の記述を .xyzzy に書くだけです。

(global-set-key #\C-F4 'close-selected-buffer)

バッファを閉じるだけならこれだけでいいのですが、私は標準のxyzzyよりももう少しwindows寄りのキーバインドで使いたいので、winkey2.l というファイルを ~/site-lisp に置いて、.xyzzy から呼び出して使い、バッファを閉じるキーバインドもこの中に入れています。

これだと Ctrl-C でコピーや Ctrl-X で切り取り、Ctrl-V で貼り付け、Ctrl-Z でアンドゥなどWindows標準っぽいキー設定が可能です。

winkey2.l の中身

(in-package "editor") 以降をそのまま.xyzzy に書いてもいけますが、その場合は最後に (in-package "user") が必要です。

(provide "winkey2")

(in-package "editor")

;;; winkey.lからコピー
(defvar *default-selection-keymap*
  (let ((keymap (make-sparse-keymap)))
	(define-key keymap #\C-c 'copy-selection-to-clipboard)
	(define-key keymap #\C-x 'kill-selection-to-clipboard)
	keymap))

(setq-default selection-keymap *default-selection-keymap*)
(global-set-key #\C-z 'undo)
(global-set-key #\C-v 'paste-from-clipboard)
(define-key esc-map #\C-x #'ctl-x-prefix)
(define-key esc-map #\C-c #'specific-command-prefix)


;;; Windowsっぽい設定
;(global-set-key #\C-A 'selection-whole-buffer)
;(global-set-key #\C-F 'search-dialog)
(global-set-key #\C-N 'new-file)
(global-set-key #\C-O 'open-filer)
(global-set-key #\C-P 'print-selected-buffer-dialog)
;(global-set-key #\C-R 'replace-dialog)
;(global-set-key #\C-S 'save-buffer-dialog)
;(global-set-key #\Home 'beginning-of-virtual-line)
;(global-set-key #\End 'end-of-virtual-line)
(global-set-key #\C-Home 'beginning-of-buffer)
(global-set-key #\C-End 'end-of-buffer)
(global-set-key #\S-C-Home 'selection-beginning-of-buffer)
(global-set-key #\S-C-End 'selection-end-of-buffer)
;(global-set-key #\F3 'search-forward-again)
;(global-set-key #\S-F3 'search-backward-again)
(global-set-key #\M-F4 'kill-xyzzy)
(global-set-key #\C-F4 'close-selected-buffer)
(global-set-key #\C-Left 'backward-word)
(global-set-key #\C-Right 'forward-word)
(global-set-key #\S-C-Left 'selection-backward-word)
(global-set-key #\S-C-Right 'selection-forward-word)

.xyzzy への記述

;;■ ちょっとだけWindows風キー
(load-library "winkey2")

ネタ元

黒い羽根 キーカスタマイズ
http://www.uranus.dti.ne.jp/~shiro-/soft/xyzzy/keybind.html#windows


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