subshell-proc 20130122.1322(in MELPA)
Functions for working with comints

概要

Emacsは アプリケーションランチャー です!
なぜなら外部プログラムを呼び出せるからです。
しかし、プログラムを起動するEmacsコマンドを定義するマクロが標準で用意されていないのは悲しいことです。

そこで、 subshell-proc.eldefproc マクロを使えば一発です!
comint-mode(shell-modeの元となるモード)を使っているのでシェルのような対話的プログラムにも対応しています。

(defproc コマンド名 プログラム プログラムの引数リスト &optional 説明文字列)

引数リストは定義するコマンド内で評価されるので、buffer-file-nameやdefault-directoryなども渡せます。
たとえば文字列と buffer-file-name と default-directory を表示するだけのM-x echo-testはこのように定義されます。

(require 'subshell-proc)
(defproc echo-test "echo" `("string" ,buffer-file-name ,default-directory))

20151027035125.png
Fig1: M-x echo-test

よって、得意な言語でサッとスクリプトを書いてdefprocで定義してキーに割り当ててしまえば、すぐにEmacsで呼び出せます。

正直、僕はこのような手軽に使えるelispが登場するのを待っていました。

インストール

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

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

M-x package-install subshell-proc

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

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

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


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