Pebble's Diary

プログラマーの作業メモ

VimでVisualLine選択したテキスト内から/**/,//のコメント部分のみを削除する

この記事は Vim Advent Calendar 2013 180日目の記事になります。

だいぶ前に作ったvim pulginの紹介です。
機能はタイトルの通りです。対応言語はC,C++,Objective-C等/**/,//がソースコメントを表すコンパイル言語です。
利用ケースとしては、
「このソースのコメント意味不明なのばっかだから邪魔だけど、1つずつ削除するのは面倒だ。」とか
「とりあえず、これで動いたから作りかけでコメントアウトした部分のソースを全て削除するか。」といったケースです。
コマンドで一つのソースファイルから丸ごと削除するツールもあると思いますが、
vimのコマンドでやると、undo、redoで確認できるし、安心です。

<使い方>
1) こんなObjective-Cソースがあるとします。

f:id:pebble8888:20140527223858p:plain

2) 消したいコメントが含まれるエリアをVisualLine選択(V6j)して

f:id:pebble8888:20140527223908p:plain

3) 削除を実行(,f)

f:id:pebble8888:20140527223920p:plain

4) コメント部分だけが消えました。
コメントが複数行削除された場合は、削除後に空行が1つだけ残るようにしてあります。
また、'(シングルクォーテーション)や"(ダブルクォーテーション)で囲まれた部分はリテラルとして認識します。

ちゃんとコメントだけが消えたのか気になる心配性の人はUNDO(u)やREDO(CTRL-r)で確認するといいでしょう。

<インストール>
こちらからどうぞ github.com/pebble8888/delcmt

<その他>
ほぼCで実装しています。vim scriptはムズカシイです。

以上です。