※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

@あれこれ-2008年12月



[2008-12-24]

at_Picture から exif 情報 はてなブックマークに登録

at_picture は属性(タグ)による画像管理に特化したツールなので、その他のことは
外部ツールで。

閲覧中の画像またはリストアップ画像及び選択画像の Exif 情報をテキストビューアで
(まとめて)見る。優秀なツールたちに頼ってるだけですが^^
書庫内ファイルパスには exiftool が未対応なのであしからず。

showexif.jpg

使用ツール

手順
1.showExif.ahk
  閲覧中の画像であれば、 exiftool が標準出力した情報をテキストビューア
  ( ttPage-R )にパイプして閲覧。
  パスリスト(.sz7)であれば列挙された各画像の exif 情報を exiftool
  一つずつ解析
  ↓
  ファイルにリダイレクトされた( afx4v )(複数)画像の情報を順番に
  一時ファイルにまとめ
  ↓
  テキストビューア( ttPage-R )で閲覧、閲覧後一時ファイル削除
  ってな流れ。

files = %1%
; exiftool.exe のパス
tool = D:\Application\Picture\exiftool\exiftool.exe
; afx4v.exe のパス
afx4v = D:\Application\Filer\afx\afx4v.exe
; ttpage.exe のパス
ttpage = D:\Application\Text_Editor\ttPage-R\ttPage.exe
; リダイレクトファイルは afx4v.ini で指定したのと同じにする
tempfile = E:\etc\afx4v.tmp
; exif 情報をまとめて書き込む一時ファイル
efile = E:\etc\exifinfo.txt

SplitPath, files, ,,ext
if ext = sz7
{
    Loop, Read, %files%, %efile%
    {
        RunWait, %afx4v% /d %tool% -a -u -g1 "%A_LoopReadLine%"
        FileRead, exifinfo, %tempfile%
        FileAppend, 【%A_Index%】`n %exifinfo%`n
    }
    ; 一時ファイル ttpage-R で閲覧
    RunWait, %ttpage% %efile% -nf
    ; 閲覧終了で一時ファイルを削除
    FileDelete, %efile%
}
else
Run, %afx4v% /p/s %tool% -a -u -g1 "%files%"

2. afx4v の設定
  afx4v.ini
   R.File、S.Key 以外設定不要(詳細は afx4v.txt 参照)
   「あふ」が無くても動作するはず
[AFX]
R.File= E:\etc\afx4v.tmp
V.Key= 
AFX.P= 
Title= 
S.Key= path\to\ttPage-R\ttPage.exe
S.Title= 

ここまでの設定が済んでいれば、ファイラやランチャーから showExif.ahk に画像や
パスリスト(.sz7)のパスを直接渡してもオッケー。

3. ArgHelper の設定
 3-1.arghelper.exe をコピーして showExif.exe にリネーム
 3-2.showExif.exe と同じ場所に showExif.ini を作成

  arghelper.ini
  AutoHotkey.exe のパスと作成した AHK のパスを指定
path\to\AutoHotkey\AutoHotkey.exe
path\to\showExif.ahk

4. at_picture の外部プログラムに showExif.exe を登録
  表示画像を「プログラムから開く」、
  「リストアップ画像のパスリストを開く」・「選択画像のパスリストを開く」

ちなみに、属性パレットのタブの一つにショートカットキーの一覧を読み込み、
うろ覚えの頭を補完してます(画像参照)。


クリスマス・イブ
  私は何をする人ぞ

チキン焼いて待ってます。。。

[2008-12-21]

jEdit のことなどグチャグチャと はてなブックマークに登録

対応する括弧や記号で文字列を閉じることを enclose pairs と言うらしい。
選択文字列を囲ったり、xyzzy でも手放せない。 jEdit マクロ も公開されていて嬉し。
マクロのショートカットにそのまんま ( や [ や { を当てると便利。
日本語のかぎカッコ「」や小カッコ()用のマクロも作ってみた。

マクロのメニュー登録名は、マクロファイル名(xxx.bsh)がそのまま使われる。
日本語ファイル名でもオッケーなんだけど、
jedit_enclose.jpg

さて、「かぎカッコ」って英語でなんて言う?

[2008-12-14]

あふすくりぷた(Type2) はてなブックマークに登録

「あふすくりぷた(Type2)」 を使ってみた。マークファイルのパスを取得するだけで
あまり活用してるとは言い難いが。
属性を入力しなければ、 at_picture のリストに登録するだけ。(アクティブなリストに
追加するなら -c オプションを外す。)

; あふすくりぷた(Type2)の読み込み
#Include afxscript2.ahk

; at_picture.exe のパス
at_pic = path\to\at_picture.exe
; at_picture の起動オプション
ops = -ch -a

;自窓のマークされたファイルのフルパスを取得(Type2)
files := AfxGetVariable("$MF")
; 属性入力
InputBox, att, 属性付加, 複数属性は\区切りで,,180,120
If ErrorLevel = 1
    Return
else
{
    att = %att%
    If att =
        Gosub, listup
	else
        Run %at_pic% %ops% %att% %files%
        Return
}

listup:
    Run %at_pic% %files%
    Return

add2atpic.jpg

マークされたファイルが無ければカーソル位置のファイルが対象になるのは「あふ」の
仕様だけど、画像を閲覧中でもマークされた(複数の)ファイルが対象になるのが昨日の
とは違うところ。→ 閲覧中の画像とマークファイルが同じとは限らないことに注意。
画像ビュア表示中は( afxstatus.ahk で状態判別して)カーソル位置のパスを対象にするといいかも。

#Include afxscript2.ahk
#Include afxstatus.ahk
中略
afxstate := AfxStatus()
    if afxstate in Image,ImageFull
        ; カーソル位置のファイルのフルパスを取得(Type2)
        files := AfxGetVariable("$P\$F")
    else
        ; マークされたファイルのフルパスを取得(Type2)
        files := AfxGetVariable("$MF")
以下略

また、マークファイルのパスを Loop して個々に属性付加することもできるよね。

[2008-12-13]

「あふすくりぷた」のことなどグチャグチャと はてなブックマークに登録

んで、 jEdit で最初に書いた AHK は、 「あふすくりぷた」 を利用して、先日の
「あふ」から at_picture に属性つけて画像を登録するキーを、ランチャー等外部から
送信するもの。

add2atpic.ahk
; あふすくりぷた(Type1)の読み込み
;#Include afxscript.ahk
; または、
#Include afxctrl.ahk
;AFX.KEY で定義済みのキーを「あふ」に送る
;入力するキーを指定
AfxSendKey(2065)

Type1(afxscript.ahk)でも事前準備(AFX.KEY の設定)は不要。
起動中の「あふ」が一つなら、ウインドウハンドルを取得・指定する必要はない。
ただし、[NOMAL]・[GVIEW]・[TVIEW] 各セクションに同じキーの設定がある場合は、
いずれの画面でも動作してしまうのが欠点。いえ、今回は便利ですが。

個々に操作するなら、また、「あふ」のキー定義を節約するなら、事前にキー設定を
して afxscript.ahk の機能を使うか Type2(afxscript2.ahk)を使かってスクリプトを
書けばいい。ま、ぼちぼちと。

[2008-12-10]

at_picture + 「あふ」のことなどグチャグチャと はてなブックマークに登録

迂闊であった。

以前、「「あふ」は "D:\My Documents\My Pictures\080709.zip\113712.JPG" みたいな
パスを直接は開けない」と書いたけど、パスリストの見せかけ書庫(.sz7)内の書庫を
展開するのは「あふ」から呼ばれた Susie プラグインではなく、 axpathlist2.spi
呼ぶ(Susie またはパスが渡されるアプリの実行ファイルがあるディレクトリにある)
書庫用 Susie プラグインなのです。

なので、Susie をインストールしていない場合は、「あふ」での Susie Plug-in が
存在するフォルダの設定に関わらず、「あふ」直下に 書庫用 Susie プラグインを
置かなきゃいけない。もちろんハードリンクでも OK。これで、「あふ」でパスリストを
開いた時に書庫内書庫の画像もファイル一覧に直接表示されるようになる。
MassiGra Leeyes でも同様。

それでも私は at_picture 以外では書庫内書庫には未対応の axpathlist.spi 派。
MassiGra Leeyes は、有効にする Susie プラグインを設定できるけど、「あふ」では
指定する方法があるのかないのか分からないので状況に応じて使い分けられるように
MENU に。 at_picture からパスリストを開くのも( ArgHelper 経由)大丈夫。

拡張子判別実行
拡張子:
sz7
ENTER:
&MENU $V"afx"\Menu\sz7.txt

sz7.txt
afx sz7
"1: axpathlist 1" &S_ARC axpathlist.spi
"2: axpathlist 2" &S_ARC axpathlist2.spi
"----"
"E: Edit this" &EDIT $V"afx"\Menu\sz7.txt

おまけ
afx+atpic.jpg
「あふ」の画像ビューアで閲覧中の画像を at_picture に属性を指定して登録、
ハッシュチェック(Ctrl + A の例)
AFX.KEY
[GVIEW]
K0025="2065D:\at_picture\at_picture.exe -ch
       -a $IT"$"$k複数属性は\区切りで$K$" "$I2"属性付加" "$P\$F""

ファイル管理画面でマークしたファイルなら
[NOMAL]
K0025="2065D:\at_picture\at_picture.exe -ch
       -a $IT"$"$k複数属性は\区切りで$K$" "$I2"属性付加" $MF"

グチャグチャ
ハッシュチェックすると(-h)、同一画像の同一パスが二重に登録されることは無い。
ただし、(当然だけど)HD 内に重複して存在する画像やファイル名が違う同一画像は
登録されるので(実体補完属性が付く)、[編集]メニューから重複検索して整理する。
(データベースから削除→リストから削除 / 削除→無効なパスを破棄)

画像ファイルのハッシュと属性が関連付けられるので、コピーや移動時の属性管理は
楽だけど、HD から永久に追放した(する予定の)画像のハッシュを整理するにはどう
すりゃいい?

オプションに -i を付けなければ実画像が登録され、-i を付けると(-chi)、
\at_picture\db\adb\importfiles フォルダに画像をコピーして、そのコピーファイルを
登録する。移動やインポートフォルダの指定オプションがあってもいいね。

オプション -a で指定した属性が新規の属性であれば「自動生成」カテゴリに新しい
属性として追加される。\ 区切りで複数の属性を付加できるように、\\\ 区切りなら
カテゴリ追加、\\\ と \\ で階層化とかできたら便利だけど、現状では難しそう。
(現在の仕様では \\ は以降の属性を除去)

[2008-12-08]

試してみようよ はてなブックマークに登録


より良いものを求めて、とか、現状に不満足、とか言うんじゃない。
ムズムズと湧いてくるワームみたいな、時々やってくる発作みたいなもん。

今回のムズムズは、 jEdit - Programmer's Text Editor
AutoHotKey にシンタックス定義ファイルが付いてくるので、前から試して
みたかったんだよね。

1. jEdit v4.3 Pre16 Windows Installer 版 を実行、ウィザードに従ってインストール
  スタートアップ起動・常駐させたくなければ Serect Additional Tasks の画面で
  「Start jEdit Server automatically on startup system」のチェックを外す。

2.インストールフォルダの jedit.jar を jEdit 4.3 pre16 本体カスタマイズ版
  上書きコピー

3. jEdit日本語リソース for 4.3pre16 配布ファイル内の全てのファイルを
  path\to\jEdit\properties フォルダにコピー

4.シンタックス ハイライト・入力補完
  AutoHotkey 配布ファイル同梱の
  Run this to install syntax and clip files for jEdit.ahk を実行
  手動でするなら、AHK syntax ファイル(ahk.xml)を
  C:\Documents and Settings\user名\.jedit\modes フォルダにコピー
  C:\Documents and Settings\user名\.jedit\modes\catalog ファイルに
  edit mode の設定を追記
<MODES>
  <MODE NAME="ahk" FILE="ahk.xml" FILE_NAME_GLOB="*.{ahk}"/>
</MODES>

5.設定保存フォルダを指定して jedit を起動
jedit.jar -reuseview -settings=path\to\設定保存フォルダ\
  インストール時に jEdit インストールフォルダが環境変数 PATH に登録されるので
  フルパス指定は不要。ただし、設定フォルダは絶対パスで指定した方が吉。
  指定したフォルダに C:\Documents and Settings\user名\.jedit の中身を
  全てコピー or 移動する。

6.AHK モードの設定
  [ユーティリティ]→[グローバル オプション]→[編集]
  「設定を変更するモード」で ahk を選択、「デフォルト設定を使用」のチェック
  を外し、「デフォルト編集モード」を ahk にする。
  ※ <グローバルデフォルト> のデフォルト編集モードを ahk にしておくのも
    いいかも。

jedit_custum.jpg

画像では、Background, BufferList, BufferTabs, Context Menu プラグインと、
toggleToolbar マクロを使用、左と下にツールウインドウをドッキング。
なかなか奇麗ですぅ。。ぅ? JAVA 製の割りに動作はさほど重くないしぃ。。ぃ?
それなりにメモリは食いますが。

入力補完、短縮入力、フォールディング、矩形選択、シンタックスハイライト、
フルキーカスタマイズ、プラグイン拡張、マクロ、等々一通りの機能を備え、
ファイルブラウザは小技が利いていて以外に便利。

jedit_filer.jpg

Kill ring、レジスタ、バッファの分割(同一・別ファイル)、アクションバー
(ミニバッファみたいなもん?)、プレフィックスキー等に Emacs の匂いを感じたり。

jEdit Emacs Emulation Package ってのもある。
INSTALL ファイルに記載の方法ではキーバインド登録がエラーでできなかったので
1.作成した「設定保存フォルダ\macros」フォルダに Emacs フォルダを作成して
  配布アーカイブ内の .bsh ファイルをコピー(Emacs_Set_Keybindings.bsh 以外)
2.「jEdit インストールフォルダ\properties」フォルダに配布アーカイブ内の
  shortcuts.properties ファイルをコピー、shortcuts.props にリネーム
3.Ctrl-x はプレフィックスとして使うので、[グローバルオプション]で「切り取り」
  のショートカットを C+x x とかに変更

サクラエディタみたいに編集中のスクリプトを試験実行したいのに、Windows の
関連付けは見てくれないみたいで、AHK が実行できない。こりゃ、マクロでなんとか
しなきゃいけない。。。っと、 ありました

AHK_run.bsh を作成した設定保存フォルダ\macros フォルダに置き、ショートカットを
割り当てたり、Context Menu プラグインで AHK モード用メニューに登録したり。

プログラマ専用にしておくのはもったいない。


-