Carbon Emacsで Ctrl + 英数 を押すとフリーズする

Carbon Emacsが頻繁にフリーズすると思ったら、下記で既に取り上げられていました。
blog: pawo: 英数 / かな キーの問題

Ctrl + 英数 を押すと必ずフリーズします。
他のアプリでも発生するとのことなので、これは気をつけた方が良いですね。

anythingの候補をアルファベットで選択できるようにする

rubikichさんのホームポジションのアルファベットで候補を選択できるようにしてみた - http://rubikitch.com/に移転しましたにある記事を参考に設定

最新版のanything.elをインストール

M-x auto-install-from-emacswiki
anything.el を入力

下記を.emacsに追記

(setq anything-enable-shortcuts 'alphabet)

これで下記のように候補の前にホームポジションにあるアルファベットの大文字が表示されるようになります。
これは、便利だ。

emacsで、anythingを使用してelisp-jaマニュアルを引く

2009-12-05 - Secondary Storageで、elispマニュアルの日本語をいれたのですが、今回は、そのマニュアルをanythingを使用して引けるようにします。

anything-config.elに定義されている、 anything-c-info-elisp-ja を元に作成しました。
下記を.emacsに追記して、 また、anything-sources に anything-c-source-info-elisp-ja を追加してください。


私は、elisp(英語版)と、elisp-ja(日本語版)の二つのinfoを共存させているので、下記のような定義が必要になっています。もし、日本語のelispマニュアルのインデックス名が「elisp」であれば、下記設定をせずとも表示できると思います。

;; Info Elisp-JA
(defvar anything-c-info-elisp-ja nil)
(defvar anything-c-source-info-elisp-ja
  `((name . "Info Elisp")
    (init . (lambda ()
              (save-window-excursion
                (unless anything-c-info-elisp-ja
                  (with-temp-buffer
                    (Info-find-node "elisp-ja" "Index")
                    (setq anything-c-info-elisp-ja (split-string (buffer-string) "\n"))
                    (Info-exit))))))
    (candidates . (lambda ()
                    (loop for i in anything-c-info-elisp-ja
                          if (string-match "^* [^ \n]+[^: ]" i)
                          collect (match-string 0 i))))
    (action . (lambda (candidate)
                (Info-find-node "elisp-ja" "Index")
                (Info-index (replace-regexp-in-string "* " "" candidate))))
    (volatile)
    (requires-pattern . 2)))
;; (anything 'anything-c-source-info-elisp-ja)

;; info情報の再構築
;; そうしないと anything-c-source-info-elisp-ja の開く際にエラーとなる
(info-lookup-reset)

ディレクトリ毎に分けられたinfoを一元化してあげないと、anythingを起動するときにelisp-jaのノードがないといわれるため、「(info-lookup-reset)」をしてinfo情報の再構築を行っています。

下記が実行した画面です。

日本語man ページ + emacs + WoMan + imenu + anything で快適な検索スタイルを構築

http://d.hatena.ne.jp/kitokitoki/20090719/を参考に設定しました。

日本語のmanページをimenu(anything版)を使ってセクション毎にメニューを表示させてみたいと思い、試してみました。

下記を.emacsに追記します。
([osx][emacs]日本語のmanページをemacsからWoManを使って引けるようにする)で書いた設定も混ざっているので、既に設定しているものがある場合は、省いて下さい。

また、必要に応じて、anything-sources に anything-c-source-man-pages 、anything-c-source-imenu を追加しておいてください。

(setq woman-use-own-frame nil)
(setq woman-imenu-generic-expression
      '((nil "^\\(   \\)?\\([ぁ-んァ-ヴー一-龠a-zA-Z0-9a-zA-Z0-9]+\\)" 2)))

(setq woman-manpath '("/usr/local/jman/share/man/ja_JP.UTF-8/" 
		      "/opt/local/share/man"
		      "/usr/local/share/man"
;;		      "/usr/share/man"
		      "/usr/X11/man"))

;; これをしないとWoManでanything-imenuしてもなにも候補がでない
(setq woman-imenu t)

;; migemoを使用したimenuソースを定義
(setq anything-c-source-imenu
  '((name . "Imenu")
    (candidates . anything-c-imenu-candidates)
    (volatile)
    (persistent-action . (lambda (elm)
                           (anything-c-imenu-default-action elm)
                           (unless (fboundp 'semantic-imenu-tag-overlay)
                             (anything-match-line-color-current-line))))
    (action . anything-c-imenu-default-action)
    (migemo)))

私の環境がおかしいのか分かりませんが、「(setq woman-imenu t)」をしないとanything-imenuの候補がでませんでした。

下記がanything-imenuを表示させた結果です。

Mx anything-imenu


日本語のmanページをemacsからWoManを使って引けるようにする

前回(日本語で書かれたmanページを読めるようにする - Secondary Storage)、
macで日本語のmanページを見れるようにしました。その続きとして、emacs上で日本語のmanページを引けるようにしたいと思います。

WoManって何?って方は、http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=womanに詳しく書かれていますので見てください。

導入手順

WoManにmanページの場所を教えるため、下記を.emacsに追記をします。

/usr/local/jman/share/man/ja_JP.UTF-8/ に日本語のmanページがおいてあります。
/usr/share/man に英語のmanページが置いてあるのですが、検索のたび、日本語と英語の2つの
候補がヒットするのが嫌なので、検索候補から外しています。

(setq woman-use-own-frame nil)
(setq woman-manpath '("/usr/local/jman/share/man/ja_JP.UTF-8/" 
		      "/opt/local/share/man"
		      "/usr/local/share/man"
;;		      "/usr/share/man"
		      "/usr/X11/man"))

そして、emacsを再起動して(再起動せず、eval-regionしても良いです)下記を叩くと、キャッシュを更新して、追加したmanページが検索対象となります。

C-u M-x woman
  • 表示できるか確認
M-x woman
gzipを入力してEnter