プログラム系統備忘録ブログ

記事中のコードは自己責任の下でご自由にどうぞ。

Emacsで自分で情報源を選んだanythingでmigemoを使う

2012/09/29 0:52、記事を加筆訂正しました。
使用環境はWindows7、gnupack_devel-9.01のEmacs 24.1.1。
Emacsのどのバージョンからか、anythingを使うときはanything-sourcesを設定する代わりに自分で情報源を選んで使うように勧められるようになったので、選んでみました。

自分で情報源を選んだanythnigとmigemoを組み合わせるには以下のように記述します。

(require 'anything-migemo)
(setq anything-use-migemo t)

ただし、自身の環境ではC-xb(switch-to-buffer)とC-xk(kill-buffer)が"Wrong type argument: number-or-marker-p, nil"と出て使用できなくなります。
しかしバッファ切り替えはanything、バッファのキルはbuffer-menuかanythingを使えば無くても何とかなります。
他にauto-install-from-emacswikiも上記のエラーで使用できなくなります。
上の不具合を発生させずにmigemoを使用するには、修論のためのLaTeX設定 - みずぴー日記のように記述するとうまく行きました。

(require 'anything-migemo)
(setq my-anything-sources
	  '(
		;; 色々な情報源
		))
(global-set-key (kbd "C-;")
                (lambda()
                  (interactive)
                  (anything-migemo t my-anything-sources)))


なんとなく現状のanything関連設定公開

;; recentf関連
(recentf-mode t)
(setq recentf-max-saved-items 1000)
;; 「バッファを替えた時、ファイルを開いたとみなす」「Directoryも履歴に保存」する拡張
(require 'recentf-ext)


;; anything関連
(require 'anything-startup)
(require 'anything-migemo)

;; 遅延を短く
(setq anything-idle-delay 0.1)
(setq anything-input-idle-delay 0.1)

;; 自前の情報源の定義
(setq my-anything-sources
	  '(
		anything-c-source-buffers+
		anything-c-source-files-in-current-dir+
		anything-c-source-recentf
		anything-c-source-bookmarks

		anything-c-source-emacs-functions
		anything-c-source-emacs-variables
		))

(global-set-key (kbd "C-;") (lambda()(interactive)(anything-migemo t my-anything-sources)))
(define-key anything-map "\C-\M-p" 'anything-previous-source)
(define-key anything-map "\C-\M-n" 'anything-next-source)
;; 再開直後はmigemo使用時と同じまま、patternを編集するとmigemo無効
(global-set-key (kbd "C-M-;") 'anything-resume)

(setq anything-kill-ring-threshold 5)
(global-set-key "\M-y" 'anything-show-kill-ring)

anything-c-source-emacs-funtioncsではdescribe-functionで出てくる"defun"などのEmacsLispそのものの言語機能(?)が出てきてくれないのが残念。代わりの探してます。
(2012/11/15追記)→anything-aproposでマクロも関数も変数もフェイスも取れました。