2021年10月25日月曜日

Sublime Text プラグイン開発

SublimeText4のプラグイン(パッケージ) SymbolBalloon を公開しました。

画面上部の行が属するシンボルを表示します。


Bitbucketリポジトリ (凍結中 2022-10-15)

GoogleDrive

zipファイルをダウンロード、解凍後、SymbolBalloonフォルダをPackagesフォルダに入れて下さい(Userフォルダと同階層)。

https://github.com/matsukido/SymbolBalloon



パッケージの概観


.python-version


ファイル名はありません。
デフォルトではPython3.3ですが、ここに3.8と記述することでPython3.8が使えます。
(ただしSublime Textのバージョン4以降のみ)


.sublime-menu


メニューに項目を追加します。Preferences>Package Settings 以外への追加は非推奨。


(.sublime-keymap)


キーバインドを設定できるファイルですが、実用的なキーバインドは埋まっているのでパッケージへの同梱は非推奨。
README.mdに参考キーバインドを記述しておきます。


.sublime-commands


コマンドパレット(ctrl + shift + p)に追加しプラグインを実行できるようにします。
キーバインドの代わりにこちらが推奨されています。


.sublime-macro


このファイル名がマクロメニューに自動追加されます。

本パッケージではキーバインドでマクロを呼び出すように提案しています。
プラグインとデフォルトの動作(1行スクロール)を順次実行するマクロです。
なるべく違和感のないものを選定したつもりですが、この動作で不都合がある場合はプラグイン単独で動作するキーバインドも併記しています。


.sublime-settings


パッケージの設定ファイルです。


.py


プラグイン本体です。

2021年7月7日水曜日

AutoHotkey 小ネタ

 ● ctrl+2キーストローク


ctrl+wをトリガーにした例です。
最初に自身のラベルを一時的にoffにしているのは ctrl+w,w を有効にするためです。
これが無いと無限ループに陥るのか、動作しません。
次のInputでは ctrl+英文字の入力を期待しています。
ここで終了キーとして左右のctrlキーを指定していますが、これは「ctrlを押し直したら入力失敗」という仕様になります。


;ctrl+ 2キーストローク
^w::
Hotkey, ^w, Off
Input, inputText, L1 M T0.7,{LCtrl}{RCtrl}
Hotkey, ^w, On

IfInString, ErrorLevel, Timeout, Return

ctrlD := Chr(4) ;ctrl+dを定義
ctrlE := Chr(5)
ctrlF := Chr(6)
ctrlW := Chr(23)

If (inputText = ctrlD) ;ctrl+w,d
Send, ^n
else if (inputText = ctrlE)
Send, ^+n
else if (inputText = ctrlW) ;ctrl+w,w
Send, ^w
Return



● GUIフォームへペースト


全てにおいてGUIコントロールへの入力を要求してくるならず者システムに対処します。
テキストエディタ上でコピーし、ctrl+alt+v で改行をタブに変換して貼り付けます。





;GUIフォームへペースト
^!v::
StringReplace, out, Clipboard, `r`n, {Tab}, All
Send, %out%
Return

2021年3月20日土曜日

EXCEL VBA で差し込み印刷

EXCELのテーブルをデータソースとし、同一ブック別シートの任意のセルに差し込む場合を想定します。

データテーブルができた時点で各項目がどのセルに挿入されるかは決まるので、差し込み先のセル番地を表した「セルテーブル」を別に作り、それをデータテーブルに順次当てはめていくイメージで設計します。





このようにするとコード上ではセル管理から完全に開放されます。





更に1ページに複数レコードを差し込むN-up印刷でもコードを変更する必要はありません。この場合、セルテーブルには一度に差し込むレコード数と同一の行数が必要です。所謂ハードコード的な部分はセルテーブルだけです。



Sub 差し込み印刷()

    Set wrksht = Worksheets("データ")
    Set outsht = Worksheets("ラベル")    '出力先シート
    '1行目(項目名)を除いた全範囲をセット
    Set celrng = wrksht.Range("セルテーブル").ListObject.DataBodyRange
    Set datarng = wrksht.Range("データテーブル").ListObject.DataBodyRange
    
    Dim idx As Integer
    idx = 1
    
    Do Until idx > datarng.Count
        For Each cel In celrng      'セルテーブル全行スキャン
            outsht.Range(cel.Value).Value = datarng(idx).Value
            idx = idx + 1           '最後まで通し番号
        Next cel
        
        Select Case MsgBox("続行", vbOKCancel)  '一時停止
            Case vbOK:      outsht.PrintOut
            Case vbCancel:  Exit Do
        End Select
    Loop
End Sub

2016年10月22日土曜日

Illustratorスクリプト

Illustratorのスクリプトです(Win CS6で確認)。
アンカーポイントを1個選択して実行するとハンドルを延長したガイドを引きます。
ハンドル延長.jsx

2016年9月13日火曜日

2016年9月8日木曜日

日本語入力用キー配列 「かなだく」

日本語入力用キーボード配列「かなだく」です。
Google日本語入力用のテーブルをインポートして使用できます。




GoogleIME用ローマ字テーブル・解説PDF