vim_ahkの設定
この前チェックボックスなどを使ってメッセージのverbose levelなどを変更したり 出来る様にしましたが設定を有効に出来る アプリの選択も出来る様にしました。
こんな感じのEdit枠を作って、各行に一つアプリのタイトルとかクラスとかを書きます。
クラス名とかはトレイアイコンの右クリックから開けるWindow Spyで調べられます。
Window Groupを実行中に変更する
AutoHotkeyでは
1 2 |
|
の様にグループを設定して、
1
|
|
または
1
|
|
の様にしてグループでまとめてそれがアクティブかどうかのチェックをしたり出来ます。
ただAutoHotkeyにはGroupAdd
はありますが、GroupDelete
の様な
グループから除く様なコマンドはありません。
なのでグループを一度実行してから変更することは、加えることは簡単ですが
削除することは簡単にはできません。
そこで、名前に番号を付けてグループを変更するたびに番号を変更して
新しいグループとして作成し、
IfWinActive
でもその名前でチェックする様にするとグループ変更が可能になります。
Is there any way to destroy (delete) a window group - Ask for Help - AutoHotkey Community
vim_ahkの中では下記の様な感じでやっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
VimGroupN
という番号を新しくグループを作るたびに更新して
VimGroupName
を新しくしています。
#If WInActive
の中でもVimGroupName
という変数を使っているので
VimSetGroup
の中で変更されるとそこも反映されます。
設定ファイルに改行のある文字列を書き出すと上手くいかない
上の例でVimGroupDel
という変数でアプリの区切りを指定してますが、
Guiでは全て改行で区切る様に表示しています。
実際、Settingsに表示する時にStringReplace
を使って
書き換えを行っていますが、
最初は改行の入った文字列のまま書き出してました。
が、どうも上手く動かないと思って書き出されたファイルを見てみると
改行(`n
)が空白になって、さらに次に書き込まれるものを
挟むような感じになってしまっていました。
1 2 3 4 5 |
|
みたいになって欲しいのですが、
1 2 3 4 5 |
|
みたいな感じになってました。
書き出すタイミングをSleepで間を開けてみたりしても上手く生きませんでした。
加えて読み込むときも既に改行ではないので駄目です。
ということで改行区切りをそのまま出力するのは辞めてコンマ区切りに変更して出すようにしました。
Edit枠を最初に持ってくるとフォーカス状態になる
今の設定では一番上にチェックボックスがありますが、 最初はアプリの設定を一番上に持ってきてました。
アプリの設定はEdit
を使ってますがこれが一番上にあると
こんな感じで選択された状態になってしまいました。
この状態でも実際にフォーカスがあたってるのは下のボタンで すぐにReturnを押すとOKを押します。
なので実質的には問題は無いのですが、 見た目的にあれなので順序を変えました。