Hatena::ブログ(Diary)

わからん

2010.11.23

[] emacs で PDF を読む設定

anythingでPDFファイルをプレビューしながら高速に選びたい - 技術日記@kiwanami は、そのままだとアクロバットリーダなど外部のアプリで開いてしまう。不便なので、 doc-view.el があるなら emacs 内で表示するようにする。doc-view.el は emacs23 なら標準添付。ここまでは、anything-books.el の話。

(defadvice abks:open-file (around my-abks:open-file activate)
  (if (require 'doc-view  nil t)
      (find-file (ad-get-arg 0))
    ad-do-it))

C-x C-f で pdf ファイルを指定すれば、emacs23 なら doc-view-mode でPDF を表示することができる。だけど、マイナーモードが view-mode になり、重複するキーバインドが view-mode に奪われてしまう。そこで以下の設定を追記する。 n で次のページ、p で前のページ、 + で拡大、 - で縮小できる。

(add-hook 'view-mode-hook
          (lambda ()
            (when (eql major-mode 'doc-view-mode)
              (define-key view-mode-map "-" nil)
              (define-key view-mode-map "n" nil)
              (define-key view-mode-map "p" nil))))

なお、doc-view.el の丁寧な解説は Emacs 23でPDFを表示させる--新機能「DocView」を試す - builder by ZDNet Japan にある。

[] anything-follow-mode を let で包んで t にして anything を呼んでも無駄

(defun anything-create-anything-buffer (&optional test-mode)
  "Create newly created `anything-buffer'.
If TEST-MODE is non-nil, clear `anything-candidate-cache'."
    ...
    (set (make-local-variable 'anything-follow-mode) nil)
    ...)

ググると、Twitter / @xyzzy: letでanything-follow-modeをt ... が同じことをいっていた。


他の現実的なアプローチは、anything-c-moccur.el, anything-books.el だけど、複数人が苦労しているし、anything.el 側が変わるといいですね。

Google