Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

改行時に自動でコメント開始文字列の挿入とインデントを実行させる

$
0
0

Vim でコメントを複数行にわたって書きたい場合、自動でコメント開始文字列を挿入、インデントするための設定。

使う option は 2 つ。

  • 'comments'
    • 何がコメント開始文字列なのか、ブロックコメントの場合は何で終了させるのかなどを指定
    • :help 'comments' 参照
  • 'formatoptions'
    • 自動整形について細かく指定
    • :help 'formatoptions'

たとえば C 言語のコメント用設定は以下のようになる。

" insert comment strings and indent automaticallysetlocalcomments=sr:/*,mb:*,ex:*/,://" synonymous with :setlocal formatoptions=croql" don't use = operator with formatoptions" see :help 'formatoptions'setlocalformatoptions-=tsetlocalformatoptions+=rol

ポイントは 3 つ。

  • setlocal を使う
    • 'comments' も 'formatoptions' も buffer local なので setlocal を使う
  • 'comments' の設定内容
    • 大きく 2 つにわけられる。
      • ブロックコメント用の sr:/*,mb:*,ex:*/
        • 開始文字列が /*で以降右揃え
        • 中間文字列が後ろに空白文字の続く *
        • 終了文字列が */で、中間文字列が自動で挿入されたあとに /を打つとコメント終了とする
      • 行コメント用の ://
  • 'formatoptions' の設定に =を使わない
    • 将来の追加オプションのために =を使わないようにとヘルプに書いてある
    • 'formatoptions' のデフォルトが tcqなので、必要なものとの差分を -=+=で指定

とりあえず上記の設定を ftplugin なんかに書いておくとコメント記述の際の省力化につながる。
JavaScript はそのまま使える。というか、 JavaScript 書こうとしてコメントまわりの設定がされてないことに気づいたので調べたという経緯。

Javadoc 用に開始文字列を sr:/**などとしてもいいかもしれない。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>