クリップボードの各行先頭に付加
最近 DokuWiki というのを見つけて、これはけっこう好みかも、と試用を始めました。ファイルベースの Wiki がほしい、という条件で探していたのですが、これなら使い勝手もそこそこよいみたいです。「そこそこ」というのは、サーバーに置いてると手元のテキストエディタよりは反応が悪いあたりが、非常にはがゆいので。この DokuWiki では、スクリプトなどをブロックで引用するのに、各行の先頭に半角スペース2つ入れる、という書式になっていますが、まとめて貼り付けるときにスペースを入れるのが面倒。
そこで、まずクリップボード関連ツールを当たってみたのですが、ちょうどよいのが見つかりませんでした。さらに探す努力をするよりは、いつもの QX エディタのマクロで……、と作ってみました。
メニューを表示して選択させる、というのは QX マクロの定番ですが、メニューアイテムにショートカットキーをつける、というのと、実際に付加する文字列のほかに、それぞれの解説も用意してわかりやすく、という構成になっています。解説文字列の前に「タブ文字(chr$(&h09))」をはさんであります。
選択肢は初期状態で 18 個まで増やせます。もっと増やしたいときは [20] という部分の数を増やしてください。クリップボードの処理が完了してもダイアログなどは出ません。QX エディタのステータスバーに「done!」と表示されるだけ。
proc main
'ショートカットキー用文字列
const key$ = "abcdefghijklmnopqrstuvwxyz"
'変数設定 選択肢メニュー と クリップボードバッファ 他
dim add$[20], tag$[20],item$[20], clip$, clipall$, sel, i, j, k, n
'先頭に付加する文字列の選択肢設定 (mainly for dokuwiki)
i = 1
add$[i++] = " "
add$[i++] = " * "
add$[i++] = " * "
add$[i++] = "> "
'選択肢についての解説文字列
i = 1
tag$[i++] = "半角スペース2つ"
tag$[i++] = "箇条書き"
tag$[i++] = "箇条書き2"
tag$[i++] = "引用"
'メニュー表示
j = 1
item$[j++] = "[ESC] 終了"
item$[j++] = "-"
for k = 1 to i-1
item$[j++] = "&" + mid$(key$,j-3,1) + ". " + add$[j-3] \
+ chr$(&h09) + tag$[j-3]
next
sel = popupmenu(item$)
if sel < 3 then exit proc
'クリップボード行数取得
n = val(clipboard$(-2))
'クリップボードを行ごとに取得して処理
for i = 1 to n
clip$ = add$[sel-2] + clipboard$(i)
clipall$ = clipall$ + clip$
next
clipboard$ = clipall$
print "done!"
end proc
| 固定リンク | コメント (0) | トラックバック (0)


最近のコメント