wand 20170412.1315(in MELPA)
Magic wand for Emacs - Select and execute

概要

wand.el は、あらゆるテキストをハイパーリンク化します。

wand:*rules* に設定を記述する必要があります。
汎用的に作られているため、設定は自由自在です。

本設定では

  • シェルコマンド
  • URL
  • ファイル
  • S式

に対応させています。

該当行にて<f9>を押せばアクションを実行します。

行頭のコメント文字は除去されるため、
ソースコードに関連リンクやURLを載せられます。

ただ、制限事項としてリンクの行に余計な文字列を含められません。

org-modeにはハイパーリンク機能がありますが、
任意のテキストで使えるのは便利です。

インストール

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

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

M-x package-install wand

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

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

設定 170219085330.wand.el(以下のコードと同一)

(require 'wand)
(setq wand:*rules*
      (list
       ;; $ の後にシェルコマンドを書くと M-x shell-command で実行
       (wand:create-rule :match "\\$ "
                         :capture :after
                         :action shell-command)
       ;; http/httpsのURLをM-x browse-urlで開く
       (wand:create-rule :match "https?://"
                         :capture :whole
                         :action browse-url)
       ;; fileのURLをfind-fileで開く
       (wand:create-rule :match "file:"
                         :capture :after
                         :action find-file)
       ;; #> の後のS式を評価し結果を表示する
       (wand:create-rule :match "#> "
                         :capture :after
                         :action (lambda (string)
                                   (message "%S" (eval (read string)))))))
;;; 使用例
;; $ ls
;; http://emacs.rubikitch.com/
;; test file:~/.emacs.d/init.el
;; #> (+ 1 3)
(global-set-key (kbd "<f9>") 'wand:execute-current-line)

20170219094126.png
Fig1: lsを実行

20170219094140.png
Fig2: (+ 1 3)を実行

実行方法

$ wget http://rubikitch.com/f/170219085330.wand.el
$ emacs -Q -f package-initialize -l 170219085330.wand.el

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


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


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