pophint.el/pophint-config.elをv0.4にアップデートしました
現在の最新バージョンは以下です。
- pophint.el ... 0.3.7
- pophint-config.el ... 0.4.0
pophint.elについては過去エントリを参照して下さい。
ソース置き場:https://github.com/aki2o/emacs-pophint
変更点
- バグ修正
- アクション追加
- さらにVimperator/Keysnailっぽく
バグ修正
最近Emacsを24にアップグレードしました。
それに関係あるかわからないんですが、ある時から以下のエラーが出るようになりました。
[PopHint] Failed pophint:do : Wrong type argument: listp, 0
調べてみると、デバッグ用のコード記述にミスがあり、それを修正したら直りました。
根本的にダメっぽい原因だったんですが、今まで何でエラーが出なかったのか。。
アクション追加
今までWebでの調べ物とかはFirefoxメインでやってきたんですが、最近どんどんEmacsから出るのが嫌になってきてます。
本格的にEmacsに侵されつつある気がします。
という訳で、Emacsからすぐにググれるようにアクションを追加しました。
以下のように設定することで、選択したヒントのテキストを元にw3m-searchが実行できます。(※1)
(define-key global-map (kbd "M-s") 'pophint:do-flexibly-search)
さらにVimperator/Keysnailっぽく
しました。(※2)
デフォルトで以下のキーバインドを定義しています。
- リンクを開く (※3) ... f
- リンクを開く (※4) ... F
- 続けてリンクを開く ... C-c C-e / ; F
- 現在のタブでリンクを開く ... ; o
- 新しいタブでリンクを開く ... ; t
- リンクのURLをコピーする ... ; y
- リンク先のHTMLを表示する ... ; v
- リンクの場所にカーソル移動する ... ; RET
変更したい場合は、お手数ですが設定ファイルでpophint-config:w3m-set-keysを再定義して下さい。
現在の定義は以下です。
(defun pophint-config:w3m-set-keys () (local-set-key (kbd "f") 'pophint:do-w3m-anchor) (local-set-key (kbd "F") 'pophint-config:w3m-anchor-open-invert) (local-set-key (kbd "C-c C-e") 'pophint-config:w3m-anchor-open-new-tab-continuously) (local-set-key (kbd "; o") 'pophint-config:w3m-anchor-open) (local-set-key (kbd "; t") 'pophint-config:w3m-anchor-open-new-tab) (local-set-key (kbd "; F") 'pophint-config:w3m-anchor-open-new-tab-continuously) (local-set-key (kbd "; y") 'pophint-config:w3m-anchor-yank) (local-set-key (kbd "; v") 'pophint-config:w3m-anchor-view-source) (local-set-key (kbd "; RET") 'pophint-config:w3m-anchor-focus))
ちなみに
もしone-key.elをお使いならば、拙作のone-key-local.elを使うことで、以下のように拡張ヒントモードのヘルプのようなことも可能です。(※5)
上記イメージは、以下の設定によるものです。
(one-key-local-create-menu :hook 'w3m-mode-hook :key ";" :bind "; ?")
その他
※1 検索エンジンは、とりあえず無条件にw3m-search-default-engineを使うようにしています。
※2 w3m-modeだけです。ewwというものがあるみたいですが把握できていないので未実装です。
※3 新しいタブで開くかどうかを、pophint-config:set-w3m-use-new-tabで指定します。
※4 ※3の逆の設定で開きます。
※5 最新のone-key.elは正常に動作しないみたいです。詳しくは、別エントリを。
設定例
上記を踏まえ、現在、私の設定は以下のようになっています。
(require 'pophint) (require 'pophint-config) (setq pophint:popup-max-tips 400) (pophint-config:set-automatically-when-marking t) (pophint-config:set-yank-immediately-when-marking nil) (pophint-config:set-automatically-when-isearch t) (pophint-config:set-relayout-when-rangeyank-start nil) (pophint-config:set-w3m-use-new-tab t) (define-key global-map (kbd "C-;") 'pophint:do) (define-key global-map (kbd "C-+") 'pophint:do-interactively) (define-key global-map (kbd "M-;") 'pophint:redo) (define-key global-map (kbd "M-y") 'pophint:do-flexibly-yank) (define-key global-map (kbd "C-M-y") 'pophint:do-rangeyank) (define-key global-map (kbd "M-s") 'pophint:do-flexibly-search) (define-key dired-mode-map (kbd "f") 'pophint:do-dired-node) (add-to-list 'Info-mode-hook '(lambda () (local-set-key (kbd "f") 'pophint:do-info-ref)) t) (add-to-list 'help-mode-hook '(lambda () (local-set-key (kbd "f") 'pophint:do-help-btn)) t) (one-key-local-create-menu :hook 'w3m-mode-hook :key ";" :bind "; ?")
Enjoy!!!