秀丸からの SublimeText2 への機能移植計画

触ってる感じだとかなり基本機能のポテンシャルが高くイイ感じな SublimeText2 。

今まで使ってた秀丸からの便利機能移植を考えます。

とりあえず今まで使ってた機能を列挙してみる。

秀丸オリジナル

部分編集

 特定のスコープ内だけとかしかカーソルが移動できなくする機能
 ・関数内だけで全置換したいとか、検索したい
 ・ctrl+home, ctrl+end で、ファイルの先頭・終端じゃなく
  関数の先頭・終端に行ったり
 など、なかなかニクイ働きをする。
 

どの関数にいるか

 VisualStudio などの統合環境使ってたら普通にある
 カーソルがどの関数内にいるのかの把握。
 1画面に関数が収まらないことは、残念ながらザラにある。
 

追加コピー、ペースト

 複数行にまたがってカットしたいコードなどが意外とあるので便利。

タブ閉じたら左側をアクティブにする

 SublimeText2 は直前にアクティブだったタブに移動する。
 けど、タブ閉じた時に、どこにフォーカスが移ったか見失うことが多いので個人的には外せない。
 

独自マクロ拡張・キー割り当て

上下左右 ctrl+[hjkl] 化

 右手を←↓↑→キーまで持っていくのやだ。
 

簡易ハイライト

 目で検索するのやだ。
 
 しょうもない変数名ミスでビルドエラーでると凹むので、
 クラス名や変数名などを入力した時にハイライトさせて
 近所で実装した同名のものと同じか確認する。
  

インクルード通し

 ファイルを指定すれば、
 ソースコードに #include "パス/ファイル.h" が展開される機能。
 
 フォルダ構成など、自分よりもPCのほうが「素早く正確に」行える。
 

コメントセパレータ

 こんなやつを展開する機能

 //-------------------------------------

 
 毎回打ったりするのは面倒ですよね。
 
  

ネームスペース展開

 
 自分の閉じカッコミスがひどく、ビルドエラーもヒドいことになるので
 個人的には外せない機能。
 
 boo::foo と入力すれば

namespace boo { namespace foo {
	
}} // namespace boo::foo

 
 となる。無名ネームスペースも対応。
 ネームスペースなんて自分で書くもんじゃない。
 
 

グループ移動、グループ内タブフォーカス

 自分の任意のタブを表示したまま別グループで作業をしたいので
 タブのコントロールがしたい。
 

関数コメント展開

 //----------------
 /*! @brief  
   *  @param value : 
   */
  void func( int value );

 
 上記関数に対して、起動すれば、その上側のコメントを展開する機能
 引数とか戻り値もコメント側に対応される。

n 回リピート

input>typename T#/1..5
typename T1, typename T2, typename T3, typename T4, typename T5

 上記、"typename T#/1..5" と入力すれば
 1~5 までを # に展開する。
 
 c++ のテンプレートで
 自作タイプリスト作った時に非常に役に立ったw
 

ファイルリストから選択してタブ移動

 エディタ上で多くのファイルを同時に開くので、該当のファイルを探す手間が惜しい


今後の予定

 ひとまず、1つずつ環境構築をしていく予定~。
 ちまちまと準備中!