MaxScriptエディタの省略表現が便利だという話

投稿者: | 2017/04/15

MaxScriptエディタは標準搭載エディタの割に高機能で、色々と便利機能が搭載されているのは知られた話ですが、その中に省略表現という機能があります。

元々MaxScriptエディタはSciTEというオープンソースエディタをMax向けに改造されたエディタなので、省略表現もSciTEの機能なのですが、これも使いこなすとかなり便利な機能です。

省略表現の仕組みを簡単に説明すると、予め省略表現ファイルにショートカットとなる文字列と、その文字列を展開した後の文字列を記録しておく事で、複雑な入力の手間を省略しようという物です。

いわゆるスニペットですね。

省略表現ファイルの編集

省略表現ファイルは、MaxScriptエディタの[ツール]→[省略表現ファイルを開く]から表示する事が出来ます。

開かれたファイルは初期状態では何も書き込まれていません。

このファイルに、省略文字列=展開後の文字列 という書式で、一行毎に省略表現を記述しておく事によって、後からショートカット操作で文字列を展開出来るようになります。

参考までに私が普段使っている省略表現ファイルのサンプルを載せておきます。

case=case of\n(\n\t1:\n\tdefault:\n)
for=for  in  do\n(\n\t\n)
fori=for i = 1 to  do\n(\n\t\n)
forc=for s in selection collect 
foric=for i = 1 to  collect 
if=if  do\n(\n\t\n)
ifdo=if  do\n(\n\t\n)
ifthen=if  then\n(\t\n\n)\nelse\n(\n\t\n)
ifelse=if  then\n(\t\n\n)\nelse\n(\n\t\n)
(=(\n\t\n)
()=(\n\t\n)
fn=fn  =\n(\n\t\n)
format=format "%\\n" 
format2=format "%: %\\n" 
struct=struct \n(\n\ton create do\n\t(\n\t\t\n\t)\n)
oncreate=on create do\n(\n\t\n)
onclose=on close do\n(\n\t\n)
ondo=on  do\n(\n\t\n)
onset=on  set val do\n(\n\t\n)
onget=on  get val do\n(\n\tval\n)
un=undefined
und=undefined
uns=unsupplied
[=[0,0,0]
[0=[0,0,0]
---=---------------------------------------------------------------------------------------------------\n-- \n---------------------------------------------------------------------------------------------------
----=-- ▼  --------------------------------------------------------------------------
/=/*\n\n*/
/*=/*\n\n*/
rlt=rollout rlt "タイトル" width:162 height:300\n(\n\ton rlt open do\n\t(\n\t)\n)
rollout=rollout rlt "タイトル" width:162 height:300\n(\n\ton rlt open do\n\t(\n\t)\n)
hashtable=dotNetObject "System.Collections.Hashtable"
hash=dotNetObject "System.Collections.Hashtable"
regex=dotNetObject "System.Text.RegularExpressions.Regex"

この設定を保存して、例えばエディタ内で rlt と入力→省略表現展開ショートカット(デフォルトではCtr+Shift+A)を打鍵すると、以下のようにロールアウトのコードが展開されます。

rollout rlt "タイトル" width:162 height:300
(
    on rlt open do
    (
    )
)

因みに、私は展開のショートカットが押しづらかったので、Ctrl+Bに割り当てるよう設定しています。

また、改行の設定は改行コード(\b)を使用して設定する事が出来ます。同じくタブは\tです。

この機能をうまく使えば、めんどくさい定型句の入力や、忘れやすいDotNetオブジェクトの作成を、一瞬で入力する事ができ、大幅な作業効率の改善を見込む事ができます。

余談ですが、自分はif分やfor分の省略も設定してありますが、あんまり使ってないです。
if分のように元々短い構文や、都度内容を変えないといけない構文は、余り効果が無いようです。

省略表現ファイルを保存出来ない時の対応策

一応記述しておきますが、省略表現ファイルも、Maxのインストールディレクトリ下に作成されるので、通常ではアクセス権が無く、上書き保存する事が出来ません。

これは、他の設定ファイルなどと同じです。

ですので、必要に応じてMaxを管理者権限で起動するか、もしくはインストールフォルダにアクセス権を設定しておく必要があります。
(毎度管理者で起動するのも面倒なので、私はフォルダに権限を設定してあります。)

あまり知られていない機能ですが、使いこなすと本当に便利なので、是非試してみてほしいです。

コメントを残す

メールアドレスが公開されることはありません。