1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

サクラエディタ 適用タイプの変更マクロ

Last updated at Posted at 2024-03-17

マクロ作成の動機

サクラエディタは拡張子から適用するタイプを判断してくれる。
ファイルを開いたあとも、タイプ別設定一覧で適用するタイプを選択して「一時適用」を押せば表示中ファイルの適用タイプを変更できる。

私は普段ファイル名に.(ピリオド)を含められないサーバを扱っており、作業端末(Windows)でもそのサーバのファイルは拡張子なしで扱っている。
設定している拡張子以外のファイルはタイプ「基本」で表示されるため、毎回ファイルタイプに合わせてタイプ別一覧からタイプを選択して適用する必要がある。

このタイプ変更を少しだけ楽にするため、適用タイプの変更マクロを作成することにした。

なお、「基本」で表示された状態からタイプ変更をする点は変わらないため、作成したマクロのツールボタンやショートカットキー設定をしてようやく少し楽になる。
→ マクロの利用 参照

拡張子判定で適用されるタイプ

同じ拡張子で複数タイプ登録している場合、拡張子によるタイプ判定ではタイプ別設定一覧の上にあるタイプが適用されます。
タイプ「基本」は設定番号(1番目)や拡張子未設定を変更することができず、一覧に登録されている拡張子以外のファイルは「基本」が適用されるようになっています。

マクロでのタイプ変更

タイプ変更はマクロ関数 ChangeType で適用するタイプ別設定番号を指定する。

タイプ別設定番号は、「基本」が1、その下のタイプが2と、タイプ別設定一覧の上から何番目かを示している。

マクロ例

例えば、タイプ別設定一覧が以下の場合

  1. 基本
  2. テキスト (txt,log)
  3. TACL
  4. NSS LOG (txt,log)

例1)3番目のタイプ「TACL」に設定するマクロ

SK_setType_TACL.mac
// サクラエディタ  マクロ
// type 3 : TACL
ChangeType(3);

例2)4番目のタイプ「NSS LOG」に設定するマクロ

SK_setType_NSSLOG.mac
// サクラエディタ  マクロ
// type 4 : NSS LOG
ChangeType(4);

注意
タイプ別設定一覧でタイプの順番を変更すると、番号から引き当てられるタイプ変わることに注意。

マクロの利用

マクロの登録

マクロを作成しても、メニューなどからマクロを選択して実行としていてはタイプ別設定一覧から適用するのと変わらない。

1アクションで適用タイプ変更ができるように以下のような対応をしておく。

  • 作成したマクロを外部マクロとして登録する
     (共通設定「マクロ」)
  • ショートカットキーを割り当てる
     (共通設定「キー割り当て」 > 種別「外部マクロ」)
  • ツールバーへボタンを追加する
     (共通設定「ツールバー」 > 種別「外部マクロ」)

ショートカットキーやツールバーボタン追加をするためには、外部マクロとしての登録が必須です。

マクロ利用例

.txt など汎用的な拡張子に対して複数のタイプ設定している場合にも利用できる。
例えば、通常のテキスト(txt,log)は強調したいキーワードの設定はないが、作業ログ(txt,log)を確認するときには* ERROR *, * WARN * という文字列を強調する設定している場合、マクロを作成・設定しておくとタイプ変更が少し楽になる。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?