4

適切にフォーマットしたいコードのドキュメントがいくつかあります。

# book_id - integer
# chapter_id - integer (Optional)
# relative_url - Text: the url of the screencast file on S3, relative to the book's url
# view_count - integer

Tabular.vim をインストールしたところ、次のようになりました。

# book_id      - integer
# chapter_id   - integer (Optional)
# relative_url - Text: the url of the screencast file on S3, relative to the book's url
# view_count   - integer

このようなコードを自動生成する方法が欲しいです。つまり、79 文字にラップされ、前のコメントから行が続く場合はインデントされます。私が得るものはこれです:

# book_id      - integer
# chapter_id   - integer (Optional)
# relative_url - Text: the url of the screencast file on S3, relative to the
# book's url
# view_count   - integer

私が探しているのはこれです:

# book_id      - integer
# chapter_id   - integer (Optional)
# relative_url - Text: the url of the screencast file on S3, relative to the
#                book's url
# view_count   - integer

既存のプラグインまたはホットキー シーケンスでこれを行うことは可能ですか? gqテキストをvimで設定された文字幅に再フォーマットするについて知っていますが、コメントなどにインデントを追加しません。

4

2 に答える 2

5

あなたはformatlistpatオプションを使うことができます(:set fo+=n働くために必要です):

1.削除します#

:%s/^# //

2.flpオプションを設定します

:setl flp=^[^-]*-\\s

3.フォーマットを行います

gggqG

4.先頭に追加#

:%s/^/# /

indentexpr次のオプションを使用することもできます。

2a。indeオプションを設定

:setl inde=15

2b。空の行を挿入します

:g/^/pu_

5.空のコメントを削除します

:g/^# $/d
于 2012-09-28T02:33:47.410 に答える
0

おそらく、このような任意のタスクを自動化する最も簡単な方法は、記録を利用することです。記録を使用すると、最初にドキュメントを修正したときに使用したコマンドを記録し、非常に簡単に繰り返すことができます。

たとえば、言及したドキュメントがファイルの先頭にあるとします。

まず、set textwidth=791 行あたりの最大文字数を Vim に知らせるために使用します。それで:

  1. を押しqqて録音を開始します
  2. を押すggと、ファイルの先頭に移動します
  3. を押しgq}て、ドキュメント ブロックを再フォーマットします。
  4. 押し:Tabularize -てプラグインを使用します
  5. 押す:bnextと次のバッファに移動します
  6. を押しqて録音を停止します。

ここで、押す1000@qと、vim で開いているすべてのバッファに対して記録が繰り返されます。@q現在のファイルに対して実行したいときに押すこともできます。詳細については、:help gq:help qを参照してください。

于 2012-09-28T09:51:22.450 に答える