2012-09-01 15 views
5

Vimでは、行の長さが特定の文字数を超える場合にコメントを修正する便利な方法を探しています。特に頻繁ではないし、長い行をリファクタリングすることはしばしば言語やコードスタイルに依存するので、コードを手作業で行うのは問題ないが、これは純粋な躊躇である。Vimで長すぎるコメント行を固定する

何が起こるかは、コメント内で何か問題を発見したり、1,2語を微調整したり、80文字以内に行がこぼれたりすることがあります。私は最後の単語を次の行に移動し、次の行にはスピルします。誰かがVimでこれを自動的に行う方法を知っていますか?

+7

私はそれがちょうどtextwidth = 80と設定してから、gq を再フォーマットすると思います。 –

+0

ああ私は、それは簡単だと信じられない、ありがとう! –

+0

@DeepYellowですが、行末に書いているだけで送料が返ってくるようですね。最初にテキストを追加すると、テキストを超えて次の行に移動することはありません。それとも間違っているのですか? –

答えて

3

私は、これは通常の問題であれば、あなたのvimrcに次のように置くことをお勧めします:

nnoremap <leader>f gqip 

これはリーダーFのショートカット(fは「形式」のためである)コメントをフォーマットするにマッピング(段落の後と考えられいくつかの書式設定フラグを設定する)、gqを使ってコメントの書式を現在設定されているtextwidthまたはtwオプションの幅に設定します。 .vimrcのtextwidthをtextwidth=80に設定する必要があります。

Formatoptionsは、acqフラグをformatoptions+=acqに追加することで、具体的にはあなたが手助けしなければならないもう1つのことです。 tフラグをformatoptions-=tで削除するように注意してください。これは、認識されたコメントだけでなく、すべてのコードを自動的にラップするためです。これをすべて実行した後は、空白行に囲まれているかどうかにかかわらず、コメントだけの中でfとフォーマットを行うことができるはずです。

formatoptionsに関連する情報がありますので、自分で選択することができます。

t  Auto-wrap text using textwidth 

c  Auto-wrap comments using textwidth, inserting the current comment 
    leader automatically. 

r  Automatically insert the current comment leader after hitting 
    <Enter> in Insert mode. 

o  Automatically insert the current comment leader after hitting 'o' or 
    'O' in Normal mode. 

q  Allow formatting of comments with "gq". 
    Note that formatting will not change blank lines or lines containing 
    only the comment leader. A new paragraph starts after such a line, 
    or when the comment leader changes. 

w  Trailing white space indicates a paragraph continues in the next line. 
    A line that ends in a non-white character ends a paragraph. 

a  Automatic formatting of paragraphs. Every time text is inserted or 
    deleted the paragraph will be reformatted. See |auto-format|. 
    When the 'c' flag is present this only happens for recognized 
    comments. 
関連する問題