2019年07月09日

あなたが使用しているgPad/サクラエディタ/Meryが、ガチでCUIファイラーになります

C--20周年にケーキを買い忘れた(なんたる不覚!)んで、
別口でMunet Meddler.js(以下mumed.js)絡みの爆弾を投下します。
言っときますけど、完全に俺氏が俺氏のために用意した、完全に自己満足の記事です。

もともと、mumed.jsにはエイリアスもどきを用いた簡単なCUIランチャーを備えていることは、
俺氏の中でたいへん有名です。

(alias cmd (run cmd)) ; cmdにコマンドプロンプトを登録します。
(cmd) ; これでcmdを実行できます。


で、m-ushi君は、mumed.jsの最新版でカレントディレクトリの概念を取り入れました。

一例…。
(cd %userprofile%\Documents) ; マイドキュメントに移動します。
(cd %windir%) ; C:\Windowsに移動して、
(run win.ini) ; こんなことができます。

(getenv) ; 環境変数の一覧が知りたければ、この関数を使えばいいと思うよ。


この機能、誰もが思いつく車輪なんですがそこそこ結構な発明でして、
CUIランチャーと組み合わせることにより、なんと、
mumed.jsはCUIファイラーとして大成してしまったんです。

例えば、ファイルをコピーするコマンドは、こうなります。

(alias cp (run cmd /c "copy $1 $2")) ; "$1 $2"の部分は$*でもいいと思います。
(cp test.txt test2.txt) ; 使用例


恨むらくは、これを実行するたびに、cmdの画面が一瞬表示されるということです。
調べれば、なんとかする方法があると思いますが、どうすればいいんだっけ。
これと同様にmvやrmも実装できます。
詳細はcmd開いてhelp叩いてください。

しかし、ディレクトリ内のファイル一覧を表示するlsなりdirなりがないと
ガチで使い物になりません。
mumed.jsには標準出力を受け取る方法はないです。あほくさ!

こうします。

(alias ll (begin (run cmd /c "dir $* > %tmp%\mumed.tmp") (cat "%tmp%\mumed.tmp")))


テンポラリに無理矢理標準出力させてそれを読み取れば良いのです。
まさかcat関数がマジで実用化される日がくるとは!
なんとなくこの機能つけようと思った当時の俺!よくやった!褒美をつかわす!

しかし、このls、動きません。なぜか。
%tmp%\mumed.tmp が書き出される前にcatが実行されるためです。

じゃあどうすんだよアホ!

こうします。

(alias ll (begin (run cmd /c "dir $* > %tmp%\mumed.tmp") (sleep 1) (cat "%tmp%\mumed.tmp")))


1秒ほど待機してくれればいいのです。
まさかsleep関数がマジで実用化される日がくるとは!
なんとなくこの機能つけようと思った当時の俺!よくやった!褒美をつかわす!

実際に使ってみると、mumed.jsは結構、余計なログを書き出すんで、
見てくれは決して良くない(これはちょっと考えた方がいいかも)、
いや正直かなり悪い方であるが、
bashなんかと比べると、カレントディレクトリを常時表示する手段がないので、
必要悪というところも感じる。

嗚呼。gPadが、サクラエディタが、Meryが、ついに環境になってしまいました。

実は、本当は私、ファイラー機能を実装して2.0にしようと思ってましたが、
あんまり要らないような気がしてきました。
でも、ところどころでやっぱり不便ですし、実装した方がいいよねって思ってます。
フラグにならなければいいが…。



vimmerやemacserの人外が笑いに来たって?
構わん。どうせ私が勝てる相手ではない。 
 
タグ:mumed
この記事へのコメント
※スパムコメントは禁止しています。
もし、そういう行為があれば削除し、随時禁止IP・ないしはURLに登録しています。
現在 yahoo.co.jp、gmail.comのメルアドを含む投稿は一律弾いています。ご了承ください。
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: