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

ここは、 My Wiki のミラーです。
が、迷ってます。こっちをメインにするのもいいかなって。


[2006-12-21][2006-12-31]修正

起動時に全部開きたい

常用しているテキストエディタは、xyzzy と サクラエディタです。(メーラーの
外部エディタとWEBのソース表示用はまた別。)xyzzy では前回終了時のバッファの
状態(開いていた複数のファイルやそれぞれのカーソルの位置など)を起動時に
復元できるし、セッションとして保存、セッションを指定して開くこともできます。

サクラエディタはプロセス一つに付き一つのファイルしか開けず、複数のプロセス
を一つのウィンドウにまとめてタブ化しています。ほとんどの場合、私は一度に
いくつものテキストを開いて作業しますので、なんとか、xyzzy のように関連する
ファイルを一度に開けないものか、昨日の続きに即とりかかれないものかと、AHK
スクリプトをちょっと考えてみました。
実行するアプリはサクラエディタですが、タイトルバーにフルパスを表示できる
他のエディタを指定しても使えるはず。

# 開くファイルの拡張子は、サクラエディタのタイプ別設定に登録しておく。
# ファイルの連続実行は Run!Run!Run!(runx3.exe)を使用。もう配布してない?
# runx3.exe は指定した作業フォルダ内の runx3.txt の内容を順次実行するので、
 作業フォルダ名をセッション名と考えて、当該フォルダを指定してセッションを開いたり
 ファイルパスを追加したりセッションを新規作成したりします。
# セッションにファイルパスを追加するには、MenuHacker からタイトルバーに表示の
 パス(%titlepath%)を取得したり、Fenrirやファイラーなどから引数として渡すか、
 サクラエディタの外部コマンドを実行します。
 WinGetTitle でファイルパスを取得する場合は、サクラエディタの「共通設定」
 「ウインドウ」タブの「タイトルバー」の設定から「 - sakura $V 」の部分を
 削除すると良いです。(アクティブ時・非アクティブ時)
# それ以外(「セッションを開く」と「全部終了」は)何処からでも実行可能です。
# 存在しないファイルや不要になったファイルのパスの削除はとりあえず手動で。

menu.ini(MenuHacker)に追加
セッション(&S),run,path\to\AutoHotkey.exe, path\to\Session.ahk %titlepath%

サクラエディタの外部コマンド(Ctrl+F5)
path\to\AutoHotkey.exe path\to\Session.ahk $F

Session.ahk
最新版は別ページで。
Session.ahk

#NoTrayIcon

app = D:\Application
editor = %app%\Text_Editor\sakura\sakura.exe
tool = %app%\tools
pDir = %tool%\runx3

{
  ;Loop, FilePattern [, IncludeFolders?, Recurse?] 
  Loop, %pDir%\*, 2, 0
  {
    Menu, Sub1, Add,  &%A_LoopFileName%, Open
    Menu, runx3Dir, Add, (&O)セッションを開く, :Sub1
  }
  Menu, runx3Dir, Add
  Loop, %pDir%\*, 2, 0
  {
    Menu, Sub2, Add, &MakeDir, MakeDir
    Menu, Sub2, Add, &%A_LoopFileName%, ThisDir
    Menu, runx3Dir, Add, (&A)セッションに追加, :Sub2
  }
  Menu, runx3Dir, Add
  Loop, %pDir%\*, 2, 0
  {
    Menu, Sub3, Add, &MakeDir, MakeDir
    Menu, Sub3, Add, &%A_LoopFileName%, Append&CloseAll
    Menu, runx3Dir, Add, (&C)セッションに追加して終了, :Sub3
  }
  Menu, runx3Dir, Add, (&X)全部終了, CloseAll
  Menu, runx3Dir, Show
  return
  }
Open:
  StringTrimLeft, sDir, A_ThisMenuItem, 1
  ;Run, Target [, WorkingDir, Max|Min|Hide|UseErrorLevel, OutputVarPID]
  ;指定してた作業フォルダ内にあるrunx3.txtが使用される
  Run, %pDir%\runx3.exe, %pDir%\%sDir%
  Return
ThisDir:
  StringTrimLeft, sDir, A_ThisMenuItem, 1
  FileAppend, %editor% %1%`r`n, %pDir%\%sDir%\runx3.txt
  return
MakeDir:
  InputBox, NewDir, 新フォルダ名, , , 130, 100
  If ErrorLevel <> 0
    Return
  FileCreateDir, %pDir%\%NewDir%
  Sleep, 500
  FileAppend, %editor% %1%`r`n, %pDir%\%NewDir%\runx3.txt
  Return
Append&CloseAll:
  StringTrimLeft, sDir, A_ThisMenuItem, 1
  FileAppend, %editor% %1%`n, %pDir%\%sDir%\runx3.txt
  Sleep, 300
  Gosub,CloseAll
  Return
CloseAll:
  ;タスクトレイのソフト(非表示のウィンドウ)を終了
  DetectHiddenWindows,On
  IfWinExist,CEditApp
  {
  WinClose,CEditApp
  exit
  }
  Return
ExitApp

もっとスッキリ書けるんじゃないかと思うけどね。
組み込み変数に格納したデータって使いまわし出来ないんでしたっけ?

[2006-12-12]

esPst Ver.1.31 進化中

インクリメンタルサーチモードだけでなく、ポップアップモード(ファイル内容
一覧表示)でもデータファイルの切り替えができるようになりましたね。

■ eaPst ポップアップモードで起動
CraftLaunch
Ctrl+Shift+Enter に追加 ([2006-11-30]参照のこと)
&L %Link[esPst]
&A /#s=esAHK.ini /#c /#f= %arg
あふからfenrir/cmd=指定起動
cmd.txt(/cmdfile= で指定する)
[E:\etc\*
  定型文検索|path\to\esPst\esPst.exe /#s=esAHK.ini /#g /#j /#c /#f= "%P"
  定型文一覧|path\to\esPst\esPst.exe /#s=esAHK.ini /#c /#f= "%P"
]
あふにキー定義
path\to\fenrir.exe /cmdfile=path\to\cmd\cmd.txt /cmd="$P\$F"

■ esPst 起動オプション
[2006-11-30][2006-12-07]データファイル切り替え用設定参照のこと
/#f= ポップアップモード
     ・引数無し:登録ファイル一覧→各内容をサブメニューに展開
     ・引数有り:引数にしたデータファイル内容を表示
   インクリメンタルサーチモード(今までどおり)
     ・引数無し:先頭に登録されたデータファイルを検索対象とする
     ・引数有り:引数にしたファイルを検索対象とする

■ esPst 設定ファイル(.ini)に追加
デフォルト値で良い場合は設定不要
@file=1,20,1,1000,0,0
;切り替えファイル使用 0:無し 1:有り,1行の項目数,行数,全表示項目数,
;項目最大文字数,サブメニュー表示名 0:次の項目名 1:次の項目NO

■ 切り換え用データファイル
セパレーター挿入、サブメニュー化が改行(空白行)で出来るのは分かり易くて
いいですが、次のサブメニューを持つ項目が出現するまでの項目が @file= で指定
した行数を越えたところでもサブメニュー化され同列に表示されるので識別し難い。
やはり設定ファイル内のデータのよう階層化できる方が良いですね。
貼り付けデータを先頭に記述していない私は、現状ではあまり使用チャンスは無い
けど、確かに入力し難い文字列を一つのファイルにまとめておいたりするといいかも、
と思い始めてきたよ。

手持ちのデータをデータファイル切り替え+ポップアップモードに対応
AHK_Reference.txt
貼り付けデータのみ記述なので、区切り文字の指定(@dlm=)はホントは不要。
行頭の // でサブメニュータイトルを表すようにし、その下の空行(改行2回)で
セパレータを入れて識別しやすくしています。
空行2(改行3回)の次行がサブメニューのタイトルであり先頭でもあります。

@dlm=, 
/// AHK コマンド、関数、演算子

//実行制御

#Include
#IncludeAgain
中略


//ウィンドウグループ

GroupAdd
GroupActivate
GroupClose
GroupDeactivate


//ステータスバー

StatusBarWait
StatusBarGetText


//コントロール

SetControlDelay
以下略

いつか、ポップアップモードでも Migemo検索が出来るようになるのでしょうか?
私としては、データファイル切り替えモードに於けるポップアップモードと
インクリメンタルサーチモードの切り替えがワンストロークでできるようになると
嬉しいかも。

[2006-12-07]

動機はシンプルなほどいい


ええ、確かに、設定ファイルを自分で書かないと納得できる結果を得られない、
と言うだけで敬遠してた過去が私にもありました。書いて可能性が広がる楽しさが
分かるようになったきっかけは、振り返ってみれば Meadow(Emacs のWindows
移植版)の導入であったように思います。その後、Windows との親和性がより高い
xyzzy に移行しました。
UNIX 系 OS なんか見たことも無い私がなんで Meadow に手をつけたかって?
できるだけ少ないキーストロークで文章を書きたかっただけです。

私の esPst.ini
現時点で不要な設定、デフォルトでオッケーな設定は消しちゃってます。
ですので、サンプルの設定ファイルは必ず保存しておきます。自分が何を
やりたいのか目的をはっきり持つことが大事なんじゃないでしょうか?
まず、目的にあった設定だけして、後は必要が生じたら拡張すればいいから。
;基本動作設定
;
[system]
;区切り文字
;@dlm=, 
@replace=1
;貼り付け除外
@except=explorer,calc,AFX,clnch
;入力ウィンドウ横サイズ,項目一覧横サイズ,項目一覧縦サイズ,位置x,位置y
@window=130,200,150,10,30
;貼り付け内容を別ウィンドウに表示 
;0:なし 1:右 2:上, 最大読み込みサイズ, 横,縦, 
@view=2,1000,500,150,MS Pゴシック,13,4,0
@migemo=2,path\to\dict\migemo-dict
%end
;
;データ登録
[data]
;
%end
;
;マクロ変換
[replace]
;
%end
;
;切り替え用ファイルの登録
[file]
E:\etc\list.txt
E:\etc\AHK_Manual.txt
E:\etc\AHK_Parameters.txt
以下略
;
%end

過去ログ


-