さてさて、カチャカチャWindows編、すなわち俺が私となって薄気味悪い敬体の文章を書き綴ってきた自称初心者向けシリーズもこれが最終回となります。今回はまたあふを取り上げます。
覚えらんない人である私は、どんなソフトでも、あまり使わないキー割り当ては片っ端から忘れます。それはそれは淀みなく流暢に脳内から流れ出てしまうのです。あふでは修飾キーの組み合わせでひとつのキーに何とおりもの機能を持たせることができますが、私のような人間に覚えられるのはせいぜい修飾キーは二つか三つまで、しかもそれらにちゃんと意味を持たせておかないとまず絶対に覚えておくことなどできません。私が特に馬鹿である、ということは十分にあり得ることですが、私に負けないくらい覚えらんない人が世の中に少数であれ存在するとしたら、万一そういう方がここを読んでくださって「おう、少しは役に立ったぜ」と言ってもらえればいいなあ、と。そこで今回は、私がメインファイラとしてあふを使用している最大の理由のひとつである、「メニューの作成」に関して。覚えらんない私のような人間でも、たとえばcはコピー、Alt+cは外部アプリのFire File Copy、そしてShift+cはコピーに関するメニューを出す、などという具合にしておけば、あれ同一フォルダ内に別名コピーってできたっけできたとしたらキーなんだっけなんて場合でもとりあえずShift+cでメニューを出しておいてそこから選択するようにしておけば安心です。しかもあふではこういったメニューも非常に簡単な書式のテキストファイルで記述することができます。
メニューの書式
では、私が自分で使っているコピー機能を拡張するメニュー(CopyMenu.txt)を例に、メニューの書式を確かめておきましょう。
afx コピーメニュー "2 同一フォルダにコピー" ©TO "$P" "C カーソル位置のフォルダにコピー" "©TO $P\$F" "U 上の階層にコピー" "©TO $P\.." " -----------------------" "N フルパスをクリップボードにコピー" &MENU $V"afx"\Menu\ClipFilename.txt "T ツリー構造のみコピー" "C:\Program Files\DTreeCopy\DTreeCpy.exe" " -----------------------" "B コピー先を入力して指定" ©TO ! "H 複写先をヒストリーから選ぶ" ©HIS "M メッセージをコピー" &MESCLIP " -----------------------" "E ファイルの内容をクリップボードにコピー" C:\Program Files\Gettext\getText.exe "$P\$F" " -----------------------" "= Edit this" &EDIT $V"afx"\menu\copymenu.txt
メニューの書式は単純です。行頭からの""でくくった部分がメニューに表示され、最初の文字がショートカット文字となります。zキーで起動する「あふ設定」で「各種設定(1)-一般-メニューは頭文字のキーで即決定する」にチェックを入れておくと、Enterキーを押さなくとも即実行してくれるので便利です。そのあと半角スペースで区切り、コマンドを記述します。
上のメニューでは、最初の3つはあふの内部コマンドCOPYTOを使用して、コピー先を置換文字で指定しています。そのあとの" -----------------------"はメニューのセパレーターとして入れてあります。次の"N フルパスをクリップボードにコピー"で使用しているコマンド&MENUはメニューを呼び出すコマンドです。メニューの中でこのコマンドを使うとメニューからさらにメニューを呼び出すことができます。引数の$V"afx"\Menu\ClipFilename.txtは呼び出すテキストファイルのパスで、$V"afx"の部分はあふの実行ファイルのあるフォルダを示しています。つまりここではあふの実行ファイルのあるフォルダのサブフォルダmenuの中のclipfile.txtをサブメニューとして呼び出すように指定しているわけです。
外部アプリを実行する際には"T ツリー構造のみコピー" "C:\Program Files\DTreeCopy\DTreeCpy.exe"の部分のように、単に実行ファイルのパスを記述すればオーケーです。ここではKresta:ディレクトリだけコピーという、階層構造のみをコピーできるツールを起動しています。また、"E ファイルの内容をクリップボードにコピー"のところで使用しているのはGettextという、テキストファイルの内容をクリップボードにコピーしてくれるツールです。いちいちエディタで開いて全選択してコピーする、なんて手間が省けて便利なツールです。
最終行はこのメニュー自体をエディタで開くコマンドです。メニューを出したら不備に気づいた、すぐに編集したい、なんて時に重宝します。
では、先ほど&Menuで呼び出したClipFilename.txtもちょっと貼っておきます。
afx ファイル名のコピー "C フルパス" &CLIP $QN$JD$MF "S ショートファイルネーム" &CLIP $p$f "T ダブルミュートで括る" &CLIP "$QN$JD$MF" "\ 末尾に\" &CLIP $QN$JD$MF\ "U URL形式(Pathway)" C:\Program Files\Pathway\pathway.exe $QN$JD$MF " -----------------------" "F ファイル名のみ "&CLIP $QN$JD$MS "U 拡張子も除く(Pathway)" C:\Program Files\Pathway\pathway.exe $QN$JD$MF " -----------------------" "D タイムスタンプをコピー" C:\Program Files\date\Date.exe $p$f " -----------------------" "= Edit this" &EDIT $V"afx"\menu\ClipFilename.txt
PathwayはURL形式(file:///みたいな形)でパス名を取得できます。この機能を持っているツールはファイル名取得ツールの中でも少ないと思います。date.exeは先ほどのGettextと同じ作者さんの単機能ツール集のひとつです。クリップボードにファイルのタイムスタンプや現在の日付をコピーできるツールです。
ショートカット作成メニュー
次はショートカット作成用のメニューを晒しておきます。
afx ショートカットの作成 "T ショートカットの作成" $V"afx"\mkshc_at.exe -folder "$O" "$P\$F" "R 名称を変更して作成" $V"afx"\mkshc_at.exe -folder "$O" -name $I"ショートカット名の変更" "$P\$F" "---------------------" "K デスクトップに作成" $V"afx"\mkshc_at.exe -desktop "$p\$f" "U スタートアップに作成" $V"afx"\mkshc_at.exe -startup "$p\$f" "S Sendtoに作成" $V"afx"\mkshc_at.exe -sendto "$p\$f" "---------------------" "= Edit this" &EDIT $V"afx"\menu\Shortcutmenu.txt
カチャカチャWindowsを使いたい-あふ(AFX)編2 - 覚えらんない人のためのオンラインソフト備忘録で紹介したmkshc_at.exeに様々な引数を与えてショートカット作成を便利にするメニューです。ここで特筆しておきたいのは"R 名称を変更して作成" $V"afx"\mkshc_at.exe -folder "$O" -name $I"ショートカット名の変更" "$P\$F"の$Iです。これは入力窓をだし、入力された文字列に置換されるマクロ文字です。直後の""でくくられた文字列が入力窓のキャプションになります。これがあるおかげで、検索文字列を引数にできるGrepツールなどでは、あふから検索文字列を与えて即検索させることができ、非常に快適に使えます。
CraftLaunch連携用メニュー
afx Craftlaunchに引数を渡す "R カーソル位置のファイル登録" C:\Program Files\CraftLaunch\clnch.exe /ex &SetCommand;"$P\$F" "F カレントフォルダを登録" C:\Program Files\CraftLaunch\clnch.exe /ex &SetCommand;$P\ "E コマンドを編集" C:\Program Files\CraftLaunch\clnch.exe /ex &SetCommand;$I"コマンド名を入力" "---------------------" "C カレントフォルダからDOSプロンプト" C:\Program Files\CraftLaunch\clnch.exe /ex &SubCommand;&CD;"$P",dosprompt "---------------------" "H 履歴を削除" C:\Program Files\CraftLaunch\clnch.exe /ex &RemoveHistory;$I"削除したいコマンド名を入力" "D 履歴をすべて削除" C:\Program Files\CraftLaunch\clnch.exe /ex &RemoveHistoryAll "---------------------" "S 複数コマンド連続実行" C:\Program Files\CraftLaunch\clnch.exe /ex &SubCommand;$I"コマンド名を, で区切って入力" "---------------------" "= Edit this" &EDIT $V"afx"\menu\Craftlaunchmenu.txt
CraftLaunchと連携するためのメニューです。実際に自分で使ってるコマンドは"R カーソル位置のファイル登録"くらいなので、もしかしたらうまく動かないものがあるかもしれません。
マスク用メニュー、ソート用メニューなど
これらはほとんど内部コマンドしか使っていませんので、貼るだけにしておきます。
afx マスクのメニュー "A すべてのファイル" &MASK *.* "Z *.*形式で入力して指定" &MASK $I"マスク指定(スペース区切りで複数指定可)" "C カーソル位置の拡張子でマスク" &MASK *.$E "---------------------" "M 入力指定してマーク" &MARK $I"拡張子指定でマーク(スペース区切りで複数指定可)" "T テキストにマーク" &MARK *.txt "E 実行ファイルにマーク" &MARK *.exe "P MP3にマーク" &MARK *.mp3 "P 画像にマーク" &MARK *.jpg *.jpeg *.bmp *.gif "---------------------" "= Edit this" &EDIT $V"afx"\menu\Maskmenu.txt
afx SortMenu "F ファイル名昇順" &SORT F+ "D 日付降順" &SORT T- "T 日付昇順" &SORT T+ "F ファイル名降順" &SORT F- "---------------------" "E 拡張子トグル" &SORT E! "S サイズトグル" &SORT S! "A 属性トグル" &SORT A! "---------------------" "B 前に戻す" &SORT < "---------------------" "= Edit this" &EDIT $V"afx"\menu\Sortmenu.txt
なおここに貼り付けたメニューはあくまで私が個人的に使っているものですので、皆さんの環境でうまく動くかどうかはわかりません。あふではメニューは内部に読み込むものではないので、メニューの記述がおかしくてもたぶん大事には至らないとは思いますが、あくまで自己責任でお願いします。
ツーストロークキーでのフォルダ移動
404 Not Foundさんに紹介されている方法を使うと、ツーストロークキーでフォルダを移動することが可能になります。これは&MENUでメニューを階層化できることを応用したものです。Fenrirを併用しているとフォルダ移動のために苦労してこうしたメニューを作る必然性はあまりないかもしれませんが、参考までに。
人格および文体をカメレオンの如く変えたい俺
今後この日記では、比較的初心者のかたのための解説記事では敬体を、俺自身の独白的なものあるいは丁寧に書くのがめんどくせえってものには常体を使用することにしようと、今ここで俺が勝手に決めた。と突然ここで常体になってしまってこのままだと先生に叱られちゃう作文になるのだがまあいいや。そもそも俺は日常生活の中でも一人称をころころ変えることで知られている男であり、ものの本などではそういう人間を信用してはならないと書かれていたりして不快な思いをしている俺だったりするのだが、俺は信用できる人間かと言われればまあそうでないかもしれんと納得したりもするので仕方ない許してやる。そんなわけでブログでも今後文体を時と場合と主に気分により使い分けていくことにさせていただくのでよろしくお願いしますしまた許して下さい。