例えば各行に書いてあるコメントのインデント位置を調整したい場合
適当なコメント.cpp
std::cout << "◆お菓子" << std::endl; // 適当なコメント
Singleton* obj = Singleton::getInstance(); // 適当なコメント
obj->Introduce();
obj->setName("妖精さん"); // 適当なコメント
obj->Introduce();
まずは調整したい行をV
などで範囲選択して置換。
何の変哲もない置換.txt
今回はコメントの「//」を目印に置換。置き換える先はタブ文字なり、半角スペースなり任意で。
ただし、一番長い行よりもコメントが後ろに来る位十分に割り当てます。
:'<,'>s/\/\// \/\//
これを実行すると
置換後のテキストはこうなる.cpp
std::cout << "◆お菓子" << std::endl; // 適当なコメント
singleton* obj = singleton::getinstance(); // 適当なコメント
obj->introduce();
obj->setname("妖精さん"); // 適当なコメント
obj->introduce();
その後、インデントを揃えたい位置にカーソルを持って行き<C-v>
で縦にブロック選択します。
今回は分かりやすいように#
をブロック範囲の反転表示と見立てています。
(ブラウザのフォント等によって#
の位置がズレて表示されますが縦一直線と思ってください。)
こんな感じの範囲にする.cpp
std::cout << "◆お菓子" << std::endl; # // 適当なコメント
Singleton* obj = Singleton::getInstance(); # // 適当なコメント
obj->Introduce();
obj->setName("妖精さん"); # // 適当なコメント
obj->Introduce();
ここでブロック選択の範囲がインデントを揃えたい行だけに表示されていることが重要です。
コードの部分を選択範囲に含めてしまうと、この後のインデント操作が間違って適用されるので注意。
選択範囲が決まったらブロックで表示が反転している状態で<
コマンドでインデントを行います。
適用する際は十分に大きいインデント量100<
などを適用してください。
(ブラウザのフォントによっては//
の位置がズレて表示されますが揃ってるものとしておいてくださいorz)
調整用のインデント適用後.cpp
std::cout << "◆お菓子" << std::endl; // 適当なコメント
Singleton* obj = Singleton::getInstance(); // 適当なコメント
obj->Introduce();
obj->setName("妖精さん"); // 適当なコメント
obj->Introduce();
するとブロック範囲よりも左側にはインデントが適用されませんので選択した位置でコメントが揃います。