Eshellつかおう。

Emacsからshellを使うと便利ですよね。
いつもはansi-termを自分なりに設定してごく普通に
例えばansi-termの上でscreenたちあげてその上でviで編集(え?
とかやっているのですが
最近eshellも併用しています。


eshellはemacsの関数が使える。これが便利。
これでちょいちょいEmacsが使いやすくしていけます。
例えば。。。


eshellで

$ ls

と打つと、当然カレントディレクトリのファイル一覧が表示されますが
場合によってはここでdired立ち上がって欲しいな。なんて思うことがあります。
それには

$ (dired ".")

とやればいい(カッコは省略可)。
でもさすがにこうするなら C-xd[enter]とやったほうが速い。


そこで
aliasの出番です。
aliasの設定はauto-alias機能が便利です。
これは command not found を4回やっちゃうと出てきます。


こんな風に失敗しまくってると。。。

~/.emacs.d/ $ d
d: command not found
~/.emacs.d/ $ d
d: command not found
~/.emacs.d/ $ d
d: command not found
~/.emacs.d/ $ d

eshellが見るにみかねて、Define alias for "a":
とミニバッファで聞いてきます。


そこで

Define alias for "d": (dired ".")

とやれば次回からd[enter]でdiredが立ち上がるってなわけです。
C-xd[enter]より2ストローク短いですね。うれしい。


eshellはlispが使えるので、
シェル文法が好きになれない、覚えられない、という人にとっては救世主かもしれません。
たとえば、こんなことができます。


0から9までの数字を出力

~ $ (dotimes (i 10) (insert (number-to-string i)))
~ $ 0123456789


自分もeshellの便利さに気付いたのが最近なので
あれこれと模索中です。
ではでは