top  Index  Search  Changes  RSS  Login

howm wiki - Windows Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

(↓どなたかよろしくおねがいします. 作者はふだん win を使っていません)

!!windows で howm を使うための手順

# 雑貨屋へ行く
# ランタンを買う
# モルゴスを倒す

※ xyzzy については[[HowmWrap]]へ. 秀丸についてはHideMaruへ.

!!注意点

* [[CodingSystem]]がどうたらこうたら
* cygwin の grep を使う場合は, うんぬんかんぬん
* UTF-8まわりのトラブル → [[BugReport20081101]]

!!Tips

* ImageCapture も併用すると便利
* めんどうな人には「設定済み meadow」 (→ [[Package]])

!!!指定した拡張子のファイルへのリンクを関連付けで開く
<<<
(defun my-fiber-from-file-name (name)
  (interactive "fFiber File:")
  (if (file-accessible-directory-p name)
      (my-folder-open name)
    (if (file-exists-p name)
        (start-process "fiber" nil "fiber.exe" (expand-file-name name))
      (error "File does not exist."))))

(defun add-fiber-action-lock-rule ()
  (let ((rule
         (action-lock-general
          'my-fiber-from-file-name
          "^>>> \\(.+[.]\\(html\\|htm\\|exe\\|ps\\|gz\\chm\\|zip\\|rar\\|djvu\\|doc\\|xls\\|ppt\\|jpg\\|gif\\|bmp\\)\\)\\( +[0-9]+\\)?"
          1)))
    (if (not (member rule action-lock-default-rules))
        (progn
          (setq action-lock-default-rules
                (cons rule action-lock-default-rules))
          (action-lock-set-rules
           action-lock-default-rules)))))
(add-hook 'action-lock-mode-on-hook
          'add-fiber-action-lock-rule)
>>>
ImageCaptureの最後にあるドラッグ&ドロップの設定と併用すると
便利。

howm的には
<<<
(setq howm-view-external-viewer-assoc
      '(
        ("[.]\\(chm\\|djvu\\|html\\|exe\\|ps\\|gz\\|rar\\|zip\\|jpg\\|mp3\\|gif\\|png\\|pdf\\|doc\\|xls\\|ppt\\)$" . "fiber %s")
        ("[.]dvi$" . "dviout %s")
        ))
>>>
とするのが普通ですね。上と動作が違うので好みは分かれると思います。

----
← [[Rast]] (2005-07-25 21:40:55)

*2005-07-19 (火) 13:26:57 ''[[Anonymous]]'' : Cygwinのgrepで、LANG=ja_JP.SJIS、.howmファイルをsjis-dosに変換して、howm-view-use-grep tでなんとかgrepを使うことに成功しました。全然早いです。しかし、howm-list-recentやhowm-list-allを打つと、
Spawning child process: exec format error
と出ます。これは何かgrepへの引数が間違っているのでしょうか。grepはgrep (GNU grep) 2.5.1 です。
*2005-07-20 (水) 00:00:35 ''[[Anonymous]]'' : まずは (setq debug-on-error t) してから発症させて, バックトレースを見てみるとか
*2005-07-20 (水) 00:00:45 ''[[Anonymous]]'' : ちなみに, エラーメッセージそのまま検索したら, [[2ch2:584-585n]]なんて出てきました
*2005-07-20 (水) 00:02:34 ''[[Anonymous]]'' : 何にせよ, make test で表示されるバージョン一式 + cygwin のバージョンは書いといた方が, 後から見る人もうれしいんちゃいます? :-)
*2005-07-20 (水) 11:28:06 ''[[Anonymous]]'' : すみませんでした。howm-testやってみました。
[症状]
menu画面で、howm-list-recentで、
 Spawning child process: exec format error
と表示されて、(setq howm-list-recent-title t)にしているにも
かかわらず、タイトルが表示されない。

[テスト1]
以下をsample/dot.emacsに追加すると出る。
;; GNU grepを使用する
(setq howm-view-use-grep t)
(setq howm-view-grep-command "c:/cygwin/bin/grep")
(setq howm-view-fgrep-command "c:/cygwin/bin/grep")
(setq howm-view-grep-extended-option "-E")
(setq howm-view-grep-fixed-option "-F")
■ バージョン
howm: 1.3.0rc3 (compile: nil, make: nil, test: t)
Emacs: 21.4.1 (i386-mingw-nt5.0.2195) of 2005-04-05
system: windows-nt
window system: w32
Meadow: Meadow-2.10 (ASAGAO)
*2005-07-20 (水) 21:50:48 ''[[Anonymous]]'' : cygwin のバージョンと, 残りのコメント(00:00:35, 00:00:45)も確認お願いできます?
*2005-07-25 (月) 11:44:12 ''[[Anonymous]]'' : Cygwinのバージョンは、
$ cygcheck -V
cygcheck version 1.74
System Checker for Cygwin
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004,    2005 Red Hat, Inc.
Compiled on Jul  2 2005
です。(setq debug-on-error t)は、

Debugger entered--Lisp error: (file-error "Spawning child process"
"exec format error")
   call-process-region(1 1 "c:/cygwin/bin/grep"
"c:/DOCUME~1/boo/LOCALS~1/Temp/emg01104" (t nil) nil "-E" "-i" "-Hnr"
"-e" "^= +" "o:/home/boo/.howm/2005/07/2005-07-22-165007.howm"
"o:/home/boo/.howm/2005/07/2005-07-00-000005.howm"
  "o:/home/boo/.howm/2005/07/2005-07-20-181300.howm" ...))
    howm-call-process-here("c:/cygwin/bin/grep" ("-E" "-i" "-Hnr" "-e"
  "^= +" "o:/home/boo/.howm/2005/07/2005-07-22-165007.howm"
  "o:/home/boo/.howm/2005/07/2005-07-00-000005.howm"
  "o:/home/boo/.howm/2005/01/2005-01-05-094057.howm" ...) nil)
    howm-call-process("c:/cygwin/bin/grep" ("-E" "-i" "-Hnr" "-e" "^= +"
  "o:/home/boo/.howm/2005/07/2005-07-22-165007.howm"
  "o:/home/boo/.howm/2005/01/2005-01-05-094057.howm" ...))
    howm-real-grep-single(("^= +")
  ("o:/home/boo/.howm/2005/07/2005-07-22-165007.howm"
  "o:/home/boo/.howm/2005/07/2005-07-00-000005.howm"
  "o:/home/boo/.howm/2005/07/2005-07-20-153600.howm" ...) nil nil)
    howm-real-grep(("^= +")
  ("o:/home/boo/.howm/2005/07/2005-07-22-165007.howm"
  "o:/home/boo/.howm/2005/07/2005-07-20-153600.howm" ...) nil nil)
    howm-grep(("^= +")
  ("o:/home/boo/.howm/2005/07/2005-07-22-165007.howm"
  "o:/home/boo/.howm/2005/07/2005-07-20-153600.howm" ...) nil)
    howm-grep-items(("^= +")
  ("o:/home/boo/.howm/2005/07/2005-07-22-165007.howm"
  "o:/home/boo/.howm/2005/07/2005-07-00-000005.howm"
  "o:/home/boo/.howm/2005/07/2005-07-20-153600.howm" ...) nil)
    howm-folder-grep-internal:files((:files
  "o:/home/boo/.howm/2005/07/2005-07-22-165007.howm"
  "o:/home/boo/.howm/2005/07/2005-07-20-155500.howm" ...) ("^= +") nil)
    howm-folder-grep-internal:pages-files(("o:/home/boo/.howm/2005/07/2005-07-22-165007.howm"
  "o:/home/boo/.howm/2005/07/2005-07-20-153600.howm" ...) ("^= +") nil)
    #[(p) "@A・・\n \"A! \f
 棕+&髟阡; 梵 黼癇竏纈 鞳 h
  pages pattern reverse assoc fixed-p] 4]((:file
  . howm-folder-grep-internal:pages-files))
    mapcar(#[(p) "@A・・\n \"A! \f
 棕+&髟阡; 梵 黼癇竏纈
  type h pages pattern reverse assoc fixed-p] 4] ((:file
  . howm-folder-grep-internal:pages-files) (:buf
  . howm-folder-grep-internal:pages-buffers)))
    howm-folder-grep-internal:pages((:pages
  "o:/home/boo/.howm/2005/07/2005-07-22-165007.howm"
  "o:/home/boo/.howm/2005/07/2005-07-20-155500.howm" ...) ("^= +") nil)
    apply(howm-folder-grep-internal:pages ((:pages
  "o:/home/boo/.howm/2005/07/2005-07-22-165007.howm"
  "o:/home/boo/.howm/2005/07/2005-07-20-155500.howm" ...) ("^= +") nil))
    gfunc-call(howm-folder-grep-internal (howm-folder-type) ((:pages
  "o:/home/boo/.howm/2005/07/2005-07-20-155500.howm" ...) ("^= +") nil))
    howm-folder-grep-internal((:pages
  "o:/home/boo/.howm/2005/07/2005-07-22-165007.howm"
  "o:/home/boo/.howm/2005/07/2005-07-20-155500.howm" ...) ("^= +") nil)
    howm-folder-grep((:pages
  "o:/home/boo/.howm/2005/07/2005-07-22-165007.howm"
  "o:/home/boo/.howm/2005/07/2005-07-20-155500.howm" ...) "^= +" nil)
    howm-view-search-folder-items("^= +" (:pages
  "o:/home/boo/.howm/2005/07/2005-07-22-165007.howm"
  "o:/home/boo/.howm/2005/07/2005-07-20-155500.howm" ...))
    howm-view-list-title("^= +")
    howm-list-title()
    howm-list-normalize()
    howm-list-recent()
    apply(howm-list-recent nil)
    (save-current-buffer (set-buffer prev) (apply (function
  howm-list-recent) nil))
    (with-current-buffer prev (apply (function howm-list-recent) nil))
    (let ((a nil) (cur ...) (prev ...)) (with-current-buffer prev (apply
  ... nil)))
    (lambda (&optional howm-menu-action-arg-name) (let (... ... ...)
  (with-current-buffer prev ...)))(nil)
    action-lock-invoke(nil)
    (let ((case-fold-search nil)) (when (null ...)
  (action-lock-goto-next-link)) (action-lock-invoke arg))
    (save-excursion (goto-char pos) (let (...) (when ... ...)
  (action-lock-invoke arg)))
    (if nil (goto-char pos) (save-excursion (goto-char pos) (let
  ... ... ...)))
    (let ((pos #<marker at 98 in
  *howmM:o:/home/boo/.howm/0000-00-00-000000.howm*>)) (if nil (goto-char
  pos) (save-excursion ... ...)))
    (lambda (arg) (interactive "P") (let (...) (if nil ... ...)))(nil)
    call-interactively((lambda (arg) (interactive "P") (let (...) (if
  nil ... ...))))
    recursive-edit()
    byte-code("・!棹・ 棹∧
  !棹\n椒?
です。
2005-07-20 (水) 00:00:45 Anonymousさんへのコメントですが、既にfgrep, egrepはシェルスクリプトになっています。

----

----
*2005-07-25 (月) 21:42:07 ''[[名無しさん]]'' : thx. じゃあ↓はどないでしょう? win よくわからんから, ピンボケだったらごめんなさい.
** (ア) (配布時のままの sample/dot.emacs で) make test して, *scratch* に以下を貼りつけて, M-x eval-buffer
(howm-call-process "c:/cygwin/bin/grep"
                    '("-E" "-i" "-Hnr" "-e" "^= +"
                      "o:/home/boo/.howm/2005/07/2005-07-22-165007.howm"))
** (イ) 以下を sample/dot.emacs に追加して make test で起動し, 「C-c , l」して出たエラーのバックトレース(「Debugger entered」以下の表示内容)
(setq howm-view-use-grep t)
(setq howm-view-grep-command "c:/cygwin/bin/grep")
** (ウ) cygwin で c:/cygwin/bin/grep -E -i -Hnr -e "^= +" o:/home/boo/.howm/2005/07/2005-07-22-165007.howm
** (エ) cygwin で file c:/cygwin/bin/grep
** (オ) win のコマンドプロンプトで c:/cygwin/bin/grep -E -i -Hnr -e "^= +" o:/home/boo/.howm/2005/07/2005-07-22-165007.howm
** (カ) win のコマンドプロンプトで c:/cygwin/bin/grep -E -i -Hnr -e hoge o:/home/boo/.howm/2005/07/2005-07-22-165007.howm
** (キ) cygwin でなく win 本体から見ての, c:/cygwin/bin/grep の正体. スクリプトか, バイナリか, ○○へのショートカットか, …
** (ク) (イ) をやめて, かわりに↓で make test したらどうか?
(setq howm-view-use-grep t)
(setq howm-view-grep-command "c:/cygwin/bin/egrep") ;; path は環境にあわせて
(setq howm-view-fgrep-command "c:/cygwin/bin/fgrep") ;; path は環境にあわせて
(setq howm-view-grep-extended-option nil)
(setq howm-view-grep-fixed-option nil)
(setq howm-view-grep-file-stdin-option nil)  ;; パターンは引数で渡す
** (ケ) (ク) の "c:/cygwin/bin/egrep" を単に "egrep" としてはだめか?

*2005-07-29 (金) 12:40:24 ''[[Anonymous]]'' : ろくにレポートだせずにすみません。最近現象が出なくなって、grepでもC-c,lでリストが出るようになっています。多分Cygwinのアップデートで直ったのだと思います。ところで、howm-view-use-grep tでも、たまにfake-grepが使用されて時間がかかることが多いですが、これはUNIXでは出ない現象でしょうか。
*2005-07-29 (金) 20:17:03 ''[[Anonymous]]'' : アップデートした cygwin のバージョンを書いておいたら, 後で見た人の参考になるかと :-). それから, もしお時間があれば, (エ)(キ) だけでも教えていただけたらうれしいです.
*2005-07-29 (金) 20:17:30 ''[[Anonymous]]'' : で, 聞いたことないですねえ… > fake-grep. 例によって, make test か test.bat で発症させる方法をみつけるのがデバッグの第一歩でしょうか. ちなみに, fake-grep が呼ばれたと判断した理由は何でしょう?
*2005-07-29 (金) 20:37:23 ''[[Anonymous]]'' : 時間がかかっている検索の場面で、C-gを押しても「C-gをもう一度押せ」というメッセージが表示されない場合があります。それがfake-grepが走っているのではと考えました。
*2005-07-29 (金) 22:22:14 ''[[Anonymous]]'' : fake-grep が呼ばれたか確認するには, M-x debug-on-entry RET howm-fake-grep RET しておくのが確実かな.
*2005-07-29 (金) 22:25:21 ''[[Anonymous]]'' : でも, 「fake-grep だろう」とかの原因を推測するより前に, 起こった事実をありのままに伝えてほしいです. BugReport の「関連」に挙がっているリンク先を一度読んでもらえば, 同意いただけるんじゃないかと.
*2005-07-29 (金) 22:25:48 ''[[Anonymous]]'' : …と頭でわかっていても, 実際はうっかりしやすいから, テンプレートとして make test をおすすめしています.
*2005-11-14 (月) 00:22:34 ''[[taku]]'' : ちなみに、自分はMeadow3(2もOK)とCygwinのgrepで、平和なhowmの毎日を送っています。ちなみに*.howm(今は*.rdだけど)のfile-coding-system=japanese-shift-jis-dosです。
  ~/.emacs
  ; GNU grepを使用する
  (setq howm-view-use-grep t)
  (setq howm-view-grep-command "c:/cygwin/bin/grep")
  (setq howm-view-fgrep-command "c:/cygwin/bin/grep")
  (setq howm-view-grep-extended-option "-E")
  (setq howm-view-grep-fixed-option "-F")
----
win 使いの方に質問があります.

※ コメントはページ末尾のコメント欄へでもお願いします.

configure && make && make install でインストールする場合,
初期メニューファイル 0000-00-00-000000.howm の置き場所は,
configure 時のオプション
--with-endir=DIR
--with-jadir=DIR
で指定することになっています.

現在は DIR には絶対パスしか指定できません.
これを相対パスも指定できるよう改良したいと計画しています.
(環境によっては相対パスの方が便利らしいです.)
* --with-jadir=/usr/share/howm/ja のように絶対パスを指定したら, これまでどおり
* --with-jadir=howm-ja のように相対パスを指定したら, $lispdir/howm-ja と解釈

このためには, configure.in 内で「絶対パスか否か」を判定しないといけません.
unix なら安直に「先頭が / か」で済みそうなのですが, win では
どうすれば良いでしょうか?

つまり,
次のコードが win でも OK か, だめならどう直せばよいか, を教えてください.
case "$tmpval" in
/*) ;;
  *) eninstdir='${lispdir}/${endir}' ;;
esac

*2005-11-28 (月) 10:13:52 ''[[taku]]'' : ご質問のconfigureオプションのWindowsパス指定の件ですが、私はCygwinでC:\Cygwinを/にマッピングさせています。--prefix=/usr/localでいつも入れています。相対パスの指定はしたことはありまあせん。大体Meadowを使う人はたいていCygwinは入れているので、絶対パスだけでもいいと思います。
*2005-11-28 (月) 13:23:52 ''[[KoRoN]]'' : こんなのがその後の処理を通るかはちょっと不明なのですが、--prefix=C:/mylocal/howmみたいなドライブを含む絶対パス指定が、相対パス扱いになっちゃいそうです。
* thx > taku さん. 気になることが二点あります.
** cygwin 使用者は, 皆さんその類の設定をしていると想定して OK でしょうか. つまり, 「howm の Makefile では c:\hoge\fuga も c:/hoge/fuga も非対応」という仕様で構わないでしょうか.
** cygwin の「マッピング」に頼ると, emacs 側が困らないでしょうか. できたら, *scratch* に以下を貼って C-j した結果を教えていただけると助かります.
(list (file-exists-p "/usr/local") (file-exists-p howm-ja-dir) (howm-menu-skel) howm-ja-dir)
* そうそう, それが心配で > [[KoRoN]]. 「じゃあどうしたらええねん?」を誰か教えてくれんかなあと. unix な人にはちょっとだけ妥協してもらって, これでお茶を濁す?
case "$tmpval" in
?:/*) ;;
/*) ;;
  *) eninstdir='${lispdir}/${endir}' ;;
esac
* これとは別件で, 区切りが / じゃなく \ なせいではまった経験もあり. 「c:\hoge/fuga」って通るもの?
*2005-11-29 (火) 01:38:53 ''[[taku]]'' : こんなんがC-jで出ました。
(t t ("0000-00-00-000000.howm" /usr/local/share/howm/ja") "/usr/local/share/howm/ja")
* む, meadow からでも cygwin の「マッピング」が見えてるみたいですね. 失礼しました.
* 結局, 上記とは別の方針になりそうです(相対パスにするか否かを別オプションで指定 → howm-test051129). thx > お答えくださった皆様
{{comment}}
----