wiki-nav 20150223.554(in MELPA)
Simple file navigation using [[WikiStrings]]

概要

<2015-03-09 Mon> org-link.el(レビュー) でorg-modeのリンクが使えます。

org-mode のリンクはとても強力ですが、
メジャーモードなのでorg-mode以外では使えません。

ソースコードのコメントでも長くなると ハイパーリンク が欲しくなります。

そこで wiki-nav.el でコメントをWikiっぽくしましょう。

リンクとターゲットは以下のように記述します。
(「;; 」はelispのコメントなので除く)

;; [[link]]  リンク
;; [[<link]] ターゲット

本設定ではターゲットの記法を発見すると自動で
マイナーモード wiki-nav-mode を有効にするので
明示的に有効にする必要はありません。

有効になるとM-pとM-nでリンク・ターゲット間をジャンプし、
RET、C-c C-o、M-mで辿るように設定しています。

デフォルトの設定だとC-c C-wでリンク・ターゲット間をジャンプしていますが、
C-c C-wはメジャーモードで使われていることがあるのでよくないです。

使えるリンク記法については設定ファイルを見てください。

以前からあった linkd.el みたいなやつですね、これは。

M-x wiki-nav-ido を使うと、 ido のインターフェースで
リンク・ターゲットへジャンプします。

20150225054216.png
Fig1: リンクは色付けされる

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.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/")))

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

M-x package-install wiki-nav

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

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

設定 150225045227.wiki-nav.1.el(以下のコードと同一)

;;; [[KeyBinding]]
;;; [[EnableOnDemand]]
;;; [[Examples]]
;;; [[日本語]]
;;; [[<KeyBinding]]
;;; wiki link間をM-p/M-nで辿れるように
(setq wiki-nav-find-any-link-keys '("M-n"))
(setq wiki-nav-find-any-previous-link-keys '("M-p"))
(setq wiki-nav-skip-to-next-keys '("<tab>" "M-n"))
(setq wiki-nav-skip-to-previous-keys '("S-TAB" "S-<tab>" "<backtab>" "S-<iso-lefttab>" "M-p"))
;;; wiki-nav内ではM-mとC-c C-o(org-mode風)でも辿れるように
(setq wiki-nav-activate-keys '("RET" "M-m" "C-c C-o"))
;;; なんでvisit:というスキームなの?file:くらいサポートすべきよね??
(setq wiki-nav-visit-link-pattern "\\`\\(?:file\\|visit\\):\\([^:\n]+?\\)\\(?:\\|:\\([^\n]*\\)\\)\\'")
;;; [[<EnableOnDemand]]
;;; wiki-nav記法があるときのみ有効にする
(defun wiki-nav-enable-maybe ()
  (unless (bound-and-true-p wiki-nav-mode)
    (save-excursion
      (goto-char (point-min))
      (when (search-forward "[[<" nil t)
        (wiki-nav-mode 1)
        (run-at-time 0.5 nil 'message "Enable wiki-nav-mode.")))))
;;; ファイルを開くときにwiki-nav記法をチェック
(add-hook 'find-file-hook 'wiki-nav-enable-maybe)
;;; 3秒間のアイドル時にwiki-nav記法をチェック
(run-with-idle-timer 3 t 'wiki-nav-enable-maybe)
;;; [[<Examples]]
;;; [[http://rubikitch.com/]]
;;; [[visit:~/.emacs.d/init.el]] ファイルへのリンク
;;; [[visit:~/.emacs.d/init.el:line:3]] init.elの3行目へ
;;; [[file:~/.emacs.d/init.el]]  これも使えるように設定
;;; [[func:wiki-nav-enable-maybe]] ファイル内の関数へのリンク
;;; [[function:wiki-nav-enable-maybe]] 同様
;;; [[line:2]] 2行目へのリンク
;;; [[<日本語]] 日本語もOK

実行方法

$ wget http://rubikitch.com/f/150225045227.wiki-nav.1.el
$ emacs -Q -f package-initialize -l 150225045227.wiki-nav.1.el

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


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