SublimeText2の素晴らしい点の一つはキーボードショートカットです。
主によく使うのは次の通り。
- 行の複製(Ctrl+Shift+D)
- 行のコメント化(Ctrl+/)
- 行のカット(Ctrl+Shift+K)
- 行の上移動(Ctrl+Shift+Up)
- 行の下移動(Ctrl+Shift+Down)
でも、この程度ならば秀丸エディタでもできるんじゃないか、と思い、考えてみました。
マクロとキー割り当てでできます。
マクロ
行の複製
秀丸の標準機能にあります。(挿入-行の二重化)
行のコメント化
行の先頭に「//」を挿入します。SublimeText2は文書の種類を自動的に判別してHTMLならば「」を挿入しますが、そこまでは対応していません。
既に「//」があれば逆に削除します。
複数行に対応します。
//insertCommentMark.mac
if(selecting){
#from=seltoplineno;
#to=selendlineno;
escape;
}else{
#from=lineno;
#to=lineno;
}
#gyo=#from;
while(#gyo<=#to){
movetolineno 1,#gyo;
#thiscode[0]=code;
movetolineno 2,#gyo;
#thiscode[1]=code;
movetolineno 1,#gyo;
if(#thiscode[0]==ascii("/") && #thiscode[1]==ascii("/")){
delete;
delete;
}else{
if(#thiscode[0]!=0x0D){
insert "//";
}
}
#gyo=#gyo+1;
}
if(selecting){
#from=seltoplineno;
#to=selendlineno;
escape;
}else{
#from=lineno;
#to=lineno;
}
#gyo=#from;
while(#gyo<=#to){
movetolineno 1,#gyo;
#thiscode[0]=code;
movetolineno 2,#gyo;
#thiscode[1]=code;
movetolineno 1,#gyo;
if(#thiscode[0]==ascii("/") && #thiscode[1]==ascii("/")){
delete;
delete;
}else{
if(#thiscode[0]!=0x0D){
insert "//";
}
}
#gyo=#gyo+1;
}
行のカット
選択した行をカットします。別の箇所で貼り付けをすることができます。貼り付けをしないならば単に削除です。
複数行に対応します。
//lineCut.mac
if(selecting){
#from=seltoplineno;
#to=selendlineno;
escape;
}else{
#from=lineno;
#to=lineno;
}
escape;
movetolineno 1,#from;
beginsel;
movetolineno 1,#to+1;
endsel;
cut;
if(selecting){
#from=seltoplineno;
#to=selendlineno;
escape;
}else{
#from=lineno;
#to=lineno;
}
escape;
movetolineno 1,#from;
beginsel;
movetolineno 1,#to+1;
endsel;
cut;
行の上移動、下移動
カーソル行を上または下に移動します。
複数行に対応していません。
//moveLineUp.mac
selectline;
cut;
up;
paste;
up;
selectline;
cut;
up;
paste;
up;
//moveLineDown.mac
selectline;
cut;
down;
paste;
up;
selectline;
cut;
down;
paste;
up;
キー割り当て
マクロ-マクロ登録 で作ったマクロを登録しておきます。
その他-キー割り当て でキーとマクロを登録します。
これでSublimeText2の一部の機能を秀丸で使うことができます。
コメント
[…] 以前、秀丸エディタでSublimeText2のキーボードショートカットを使うという記事を書きました。 これと同じことを今度はWordでやってみます。 […]