ace-link 20170528.1158(in MELPA)
Quickly follow links

概要

<2015-01-07 Wed> 一部のリンクが辿れないバグを設定で修正。

ace-jump-mode(レビュー) は、画面内の任意の場所に
2〜3ストロークで到達する強力なカーソル移動ツールです。

ブラウザでいう Hit-a-Hint のようなものです。

これをリンクを辿るのに使うのがこの ace-link.el です。

たいていの場合、画面内のリンクの数は多くないので、
キーボード2ストロークでそのリンクを辿れるようになります。

特にEmacs 24.4により標準装備されたWebブラウザEWW
においては超快適になること間違いありません。

同種のパッケージeww-lnum(レビュー)
文字がずれてしまう欠点がありましたが、
ace-linkではそれが解消されています。

乗り換えをおすすめします。

以下のパッケージに対応しています。

  • EWW
  • org-mode
  • info
  • help

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてace-linkを使う方は
以下のコマンドを実行します。

M-x package-install ace-link

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name ace-link

設定 141230083314.ace-link.el(以下のコードと同一)

;;; デフォルトの設定(参考)
;; (defun ace-link-setup-default ()
;;   "Setup the defualt shortcuts."
;;   (require 'info)
;;   (define-key Info-mode-map "o" 'ace-link-info)
;;   (require 'help-mode)
;;   (define-key help-mode-map "o" 'ace-link-help)
;;   (require 'eww)
;;   (define-key eww-link-keymap "o" 'ace-link-eww)
;;   (define-key eww-mode-map "o" 'ace-link-eww))
(ace-link-setup-default)
(require 'org)
(define-key org-mode-map (kbd "C-c M-o") 'ace-link-org)

;;; text-property-any -> next-single-property-change
;;; にしないと一部のリンクが辿れないので再定義
(defun ali--eww-collect-references ()
  "Collect the positions of visible links in the current `eww' buffer."
  (save-excursion
    (save-restriction
      (narrow-to-region
       (window-start)
       (window-end))
      (goto-char (point-min))
      (let ((skip (next-single-property-change (point) 'help-echo))
            candidates)
        (while (setq skip (text-property-not-all
                           skip (point-max) 'help-echo nil))
          (goto-char skip)
          (push skip candidates)
          (setq skip (next-single-property-change (point) 'help-echo)))
        (nreverse candidates)))))

実行方法

$ wget http://rubikitch.com/f/141230083314.ace-link.el
$ emacs -Q -f package-initialize -l 141230083314.ace-link.el

20141230082916.png
Fig1: M-x ewwでEWW起動

20141230082934.png
Fig2: EWWでoを押しace-link-ewwを起動!

20141230082942.png
Fig3: eww-lnumはずれてしまう!

20141230083008.png
Fig4: *Help*にてoを押しace-link-helpを起動!

20141230083028.png
Fig5: infoにてoを押しace-link-infoを起動

20141230083055.png
Fig6: org-modeにてM-x ace-link-orgを起動

本サイト内の関連パッケージ


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。