2008年6月15日日曜日

Meadow (Emacs) で shell-command の補完

プログラムの実行

Meadow を使ってスクリプトを書いていると、頻繁に行うのが書いたスクリプトの実行。

M-! スクリプト名

右手の親指で Alt , 小指で Shift キーを押し、左手の薬指で 1 のキーを押す。これが習慣になると、 M-! を頭の中で言うのではなくて、「コマンドの実行」と心で思うと、自然に手が動くようになってくる。しまいには、 M-! であることを忘れ、手の動きから「コマンドの実行は何のキーだっけ?」と推測するようになる。 ^^;

 

履歴から実行

一度、実行したスクリプトなら、M-! の後に、すぐ上矢印キーに手がのびる。 M-p でヒストリーを辿るという手の動きは習慣化されていない。 HHKB なので、M-! のアクションから、 Fn + [ という手の移動が最小でやりやすい。

 

選択範囲を実行

さすがに「すぐに忘れる脳みそ」だけあって、範囲を選択して実行 なんて、すっかり頭から抜けていた。復習。復習。手になじませる。 ^^;

!

と形が似ている

|

で、! とは対照的な場所に位置している。よって、手の動きも対照的。

 

コマンドの入力時に補完

shell-command で不満なのは、M-x で実行するコマンドのように TAB キーを押したら補完してくれるのかと思いきや、そうではないこと。頻繁に行う操作なので補完されるようにしたい。

shell-command.el を導入するとこれが可能となる。 「shell-command のコマンド入力に補完が効くようにする」 の説明に従い shell-command.el をダウンロードして c:\meadow\site-lisp\ に置き、 .emacs に以下を設定。

(require 'shell-command)
(shell-command-completion-mode)

追記 (2009.12.27)Dropbox に Emacs のライブラリを置いたのに伴い、shell-command も Dropbox に置くことに。

 

M-x load-file ~/.emacs で .emacs を再読み込み後に M-! を入力すると、以前とは違って現在編集しているファイルが存在するディレクトリが表示されている。ここで例えば ruby を実行したいなら、 r と入力後に TAB キーを押すと、 r で始まる .exe の候補が表示される。

ruby.exe を選択した後、動かしたいファイル名の先頭の文字を入力し、 TAB を押せばさっとファイル名が補完されるようになる。 ^^