秀丸エディタでSublimeText2のショートカットを使う

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;
}

行のカット

選択した行をカットします。別の箇所で貼り付けをすることができます。貼り付けをしないならば単に削除です。
複数行に対応します。

//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;

行の上移動、下移動

カーソル行を上または下に移動します。
複数行に対応していません。

//moveLineUp.mac
selectline;
cut;
up;
paste;
up;
//moveLineDown.mac
selectline;
cut;
down;
paste;
up;

キー割り当て

マクロ-マクロ登録 で作ったマクロを登録しておきます。
その他-キー割り当て でキーとマクロを登録します。

これでSublimeText2の一部の機能を秀丸で使うことができます。

コメント

  1. […] 以前、秀丸エディタでSublimeText2のキーボードショートカットを使うという記事を書きました。 これと同じことを今度はWordでやってみます。 […]

タイトルとURLをコピーしました