最近eshell関連で調べてて思ったこと。

大体もうeshellの環境が整ってきていじる部分は少なくなってきたけど
たまに、こういうことしてる人居ないかなぁと思って調べることがあるのです。
大体そういうのは見つからなくて、不満が募るのですが、(何に対してだろう)
ちょっと、気づいたことがあります。

大体、eshellに関して書いてあるサイトは、eshellをshellとして使うこと前提で、
shellらしい機能を提供する目的で書かれた記事が多いのです。
(renameがこんなに、「コマンドで」簡単になる、とか、「コマンド」を打つのを楽にする何かとか。)
まあ、当たり前といえば、当たり前なのですが。
eshellの本質って、なんだろうと考えたとき、
自分が思うeshellの本質って違うんですよね。eshellの本質はshellであることではなくて、
もちろんshellであることは必要なのですが、
emacsっていうeditor上で動いているshellだってことなんです。
そのまんまなんですが、これって結構凄い事じゃないですか?
それなのに、eshellをshellとしてだけ使うのってすごくもったいない。
editorがすることって、もちろんeditすることなのですが、
それやってる人はネット上ではあんまりお目にかかったことはないです。

eshellの出力を「edit」することで何かできないだろうか。

以上前置き。。。


今回長いので単にリンク張ります。

https://gist.github.com/995254

・lsしたらその内容を変更することでリネームしたりコピーしたりできます。
・'r'でただ単にリネームモードになって、'S-c'でただ単にコピーモードに入ります。
・直接文字を削除したり置換しようとしたりするとリネームモードに入ります。
(ファイル上にカーソルがある状態じゃないと動きません。)
・'C-x,C-s'で終了と同時に変更が適用されます。
・'C-g'で何もせずに終了。
(富豪的にテキストプロパティをがんがん使ってるので若干遅いです。)
(自分の環境でls自体の4分の1から3分の1程度の時間がかかりました。)
(リネームせずに7000ファイルで1秒程度、テキストプロパティは付け直さざるを得ない。)
・一応テキストプロパティ付け直さないようにもできます。'C-x,s'で。その場合は再度リネームできません。
・-sや-lオプションにもある程度対応。
(スペースで始まったり終わったり、 中にスペース二個連続だったりすると、あんまりよろしくない動きをします。注意!)

コメントとか皆無ですが、それには理由があって、
自分のeshellの設定がかなり複雑に絡み合って、今回のはその一部なのです。
できるだけ直感的にファイル操作する何かを作ろうともくろんでますが、それはまたの機会に。


最近は、eshellからemacsをコントロールしてる気分です。どうでもいいけど。