一人お手軽 Wiki もどき howm part4
howm使ってるけど、メモが増えすぎて検索が遅くなって困る
Macならmdfind、Windowsならwdsgrepを使うようにgrep-funcを設定してしのいでるけど
なにぶんプログラムとかよく分からん人間なんでアレだわ。
誰かちゃんとしたの書いてくれないかなー(チラッ メモ自体は1500弱くらい
画像やらなんやらサブディレクトリに入れてリンク張って管理してるんで、
ファイル数は6000くらい おう、もうSSD前提な時代なのかよ
つか、みんな検索は標準のfake-grep使ってんの? >>5
そんだけあると時間かかるのかもね。
namazuとかでインデックス作ったら? あらスレが立ってる
http://milkode.ongaeshi.me/ でも入れてメニュー画面描写と検索の高速化をしようとしたけれど
インストールからなぜか躓いてしまって諦めたことを思い出した
時間がかかっている原因はカラーリング処理だと思うんだけれど
それを高速化するにはhowm本体をいじらなきゃならないんだよね... >>9
grepを使ってる
platinum searcherでも使えばもっと速くなるだろうけれど >>1の一つ目のリンクにあるチュートリアルが見れない
(TUTORIAL.ja.rdをダウンロードしてしまう)
どうすれば見れる? >>14
ダウンロードしたのをそのまま開けばいいんじゃねーの? メモを開く時、前回編集した場所から開くようにするにはどうすればよい
でしょうか(デフォルトだとメモのタイトルから開く)。基本的なこととして、
~/.emacs に
> (load "saveplace")
> (setq-default save-place t)
と書いてますが howm では反映されません。add-hook してみましたが駄目でした。
> (add-hook 'howm-mode-hook
> (lambda ()
> (setq save-place t)
> ))
ご存知の方、よろしくです。m(_ _)m >>17
リスト画面でタイトル表示してる時の事?
(defun my-howm-listview-open-file ()
(interactive)
(find-file (nth 0 (nth (- (howm-view-line-number) 1) (howm-view-item-list)))))
(define-key howm-view-summary-mode-map (kbd "C-o") 'my-howm-listview-open-file)
これでリスト画面でC-oしたらそうなるような気もしなくもない メモを開いて,その bufferを killしたらメニューに戻るようにしたい
のですがどうしたらよいでしょうか? そのまんまの処理だけれどこんな感じかな?
(defun my-kill-buffer ()
(interactive)
(save-buffer)
(kill-buffer nil)
(howm-menu)) >>22
ありがとうございます!できました!
;; ttp://www.bookshelf.jp/soft/meadow_38.html#SEC542
;; ttp://howm.sourceforge.jp/cgi-bin/hiki/hiki.cgi?SaveAndKillBuffer
;; C-cC-c で保存してバッファをキルする
(defun my-save-and-kill-buffer ()
(interactive)
(when (and
(buffer-file-name)
(string-match "\\.howm\\|\\.txt"
(buffer-file-name)))
(save-buffer)
; (kill-buffer nil)))
(kill-buffer nil)
(howm-menu) ; NEW!
))
(eval-after-load "howm-mode"
'(progn
(define-key howm-mode-map
"\C-c\C-c" 'my-save-and-kill-buffer))) Emacs 24.3.1 & howm 1.4.2 で空のファイルを削除するのに、
どこかで見かけた次の設定をしてます。
(if (not (memq 'delete-file-if-no-contents after-save-hook))
(setq after-save-hook
(cons 'delete-file-if-no-contents after-save-hook)))
(defun delete-file-if-no-contents ()
(when (and
(buffer-file-name (current-buffer))
(string-match "\\.howm" (buffer-file-name (current-buffer)))
(= (point-min) (point-max)))
(delete-file
(buffer-file-name (current-buffer)))))
~/.howm-keys がないと自動的に再生成されますが、
そのときに繰り返し delete-file-if-no-contents が呼ばれ、
次のようなメッセージが出て生成に失敗します。
Generating ~/.howm-keys ...
let*: Lisp nesting exceeds `max-lisp-eval-depth'
上の設定がなければ問題ないようですが、
どのように対処するべきでしょうか? >>24
"\\.howm" → "\\.howm$" 既存のメモを開いたり、新規のメモを作成する時に、
新しいframeで編集したいと思い、以下を設定しています。
(defun howm-create-new-frame ()
(interactive)
(select-frame (make-frame)))
(add-hook 'howm-create-file-hook 'howm-create-new-frame)
(add-hook 'howm-view-open-hook 'howm-create-new-frame)
うまく動作するのですが、これだとメニューのframeにも
メモが表示されてしまいます。メニューのframeはメニューで
固定したいのですが、どうすればいいでしょうか。 >>28 どうもです。
自分で書いた内容を読み返してみましたが、何がしたいのか
よくわかんないですね。記載していただいた内容を確認しましたが、
残念ながら自分がやりたい挙動ではありませんでした。
長らく elscreen-howm を使っていたのですが、elscreenの
代りに frame を使ってみたかったのです。
hookしか知らない古代人なので、おかげさまでdefadviceを
知りました。結局自分がやりたかったことは
(defadvice howm-create-file (around frame-howm-create-file activate)
(save-current-buffer
(select-frame (make-frame)))
ad-do-it)
(defadvice howm-view-open-item (around frame-howm-view-open-item activate)
(save-current-buffer
(select-frame (make-frame)))
ad-do-it)
これで解決しました。howm 1.4.2 + emacs24.4(Windows7 32bit) あと、elscreen-howm からパクった
(defun howm-save-and-kill-buffer-frame ()
(interactive)
(let* ((file-name (buffer-name)))
(if (save-excursion
(goto-char (point-min))
(re-search-forward "[^ \t\r\n]" nil t))
(howm-save-buffer)
(set-buffer-modified-p nil)
(when (file-exists-p file-name)
(delete-file file-name)
(message "(Deleted %s)" (file-name-nondirectory file-name))))
(kill-buffer nil)
(delete-frame)))
(define-key howm-mode-map
"\C-c\C-c" 'howm-save-and-kill-buffer-frame)
の組み合わせで自分では快適ですが、howmの思想からは外れて
いるかもしれません。 howm-1.3.9.2からtest150131に移行したんですが
howm-recentfの表示がアクセス順にならなくなりました。
item-listはアクセス順になってるようなんですが。
あとrecentf-listにtrampなパス(/sshx:〜)が含まれてると
初回に接続するのに時間をとられるのがなんとかなるとうれしいです。 自己解決しました。
手元ではhowm-normalizerを'identityにバインドしてたんですが
'reverseにしたらいけました。 前の投稿とかぶるかもしれませんが、C,aの結果出力がかなり遅くなっています。
メモ数も1600弱あります。Cygwinのgrepをコールするようにしてますが、それでも遅いです。
これはもう改善の余地はありませんでしょうか。 M-x howm-list-doneをやるとすぐ結果が返ってくるのですが、これはC,aとは違うやり方で結果を出力させようとしているのでしょうか。
よろしくお願い致します。 >>34
一般に, ヒット件数(一覧バッファの行数)が多いと
どうしても時間はかかります.
もし「件数は大差ないのに C-c , a だけ極端に遅い」という症状なら
もうすこし情報をいただけないでしょうか. (環境・バージョン・設定など)
# M-x customize-variable RET howm-list-title RET で
# タイトル表示をオフにすれば速くなるはずですけれど
# やりたいことじゃないですよね. >>36
ありがとうございます。動きが速くなりました。
このまま様子を見ようと思います。 >>36
> >>34
> 一般に, ヒット件数(一覧バッファの行数)が多いと
> どうしても時間はかかります.
>
> もし「件数は大差ないのに C-c , a だけ極端に遅い」という症状なら
> もうすこし情報をいただけないでしょうか. (環境・バージョン・設定など)
>
> # M-x customize-variable RET howm-list-title RET で
> # タイトル表示をオフにすれば速くなるはずですけれど
> # やりたいことじゃないですよね.
どうも、C,aだけ、速い場合と遅い場合があるみたいです。
これはBugPasteした方が宜しいでしょうか?
ちなみに環境は、Windows7, NTEmacs23.4, Cygwin-2.0.4です。 付けたしなのですが、C,aの代わりに、
C,Aでファイルの一覧を出した後に、Tを押下すると同じ結果が得られます。
これは、C,aと同じことをやっているのでしょうか? >>23
を真似して以下のような設定を書いたのですが,*howmS*バッファなどで
C-xkしても howm-menu が出てきません.
eval-expression で (my-kill-expression)すると希望の動作をします.
どこがまちがっているのでしょうか.
(defun my-kill-buffer ()
(interactive)
(save-buffer)
(kill-buffer nil)
(howm-menu))
(eval-after-load "howm-mode"
'(progn
(define-key howm-mode-map
"\C-xk" 'my-kill-buffer))) Melpaにアップしてくれー!
packageでインストールしたい Mac OS X 10.11 El Capitan から rootless の影響で
make install が失敗する, という話を見かけました.
howm の側で何か対応できることはあるでしょうか?
>>39
C-c , , a (howm-list-all) は
変数 howm-list-title や howm-normalizer の設定に応じた後処理をしています.
C-c , , A (howm-list-around) は後処理を忘れていました.
→ howm-1.4.3rc1 で修正
>>40
howm-view-summary-mode-map
howm-view-contents-mode-map
>>41
どなたかやっていただけますか? >>42
1.4.3rc1 ありがとうございます。 キーワードのリンクをグループ化する方法はあるでしょうか?
例えば、「料理」でも「レシピ」でも両方の項目を検索できるような。 >>45
> <<< 料理 <<< レシピ
<<< 料理 レシピ とかどう書いてもいけるみたいです。
きちんと統一せずに書き散らしてしまった場合に、
後でキーワードを双方からリンクできないかなと考えていたんですが、
(例えば、料理のリンクをたたいたらレシピの方も検索できる)
ともかく上のように書いてやればその箇所から双方にリンクすることはできますね。