Vimに2番目だけでなくリスト項目のすべての行をインデントさせるにはどうすればよいですか?


17

nVimのformatoptions設定のオプションは、リスト項目の2行目をインデントして、1行目のインデントと一致させます。ただし、3以降はインデントなしに戻ります。したがって、

1. Doing a list. This is my list. I am writing
   a list. It's quite a long list. It's really
long. I can't believe how long it is. And
this just the first item!

2. Another list item.

次のように、すべての行をインデントしたいです。

1. Doing a list. This is my list. I am writing
   a list. It's quite a long list. It's really
   long. I can't believe how long it is. And
   this just the first item!

2. Another list item.

これは、Vim独自のオプション、スクリプト、またはparなどの外部フォーマットプログラムを使用して可能ですか?

回答:


16

「autoindent」を設定するだけで修正できると思います。それは私のために。

set ai


2
私にとっても機能します。特に、「n」設定のドキュメントにあるので、自分でそれを理解していないのは愚かです!ありがとう。
リッチ

@akiraうん。私はばかです。私の混乱は、Vimが2行目をインデントしているためautoindent、すでにスイッチが入っていて、質問で説明されている動作が設計された動作であると推測したことだと思います。しかし、私などの馬鹿に利益をもたらすために、マニュアルをより明確に表現できると思います。:)
リッチ

より詳細な解決策については、@ akiraの回答を参照してください。
クリントPachl

5

あなたの場合、私はこれをします:

 :set autoindent       " just for interactive indenting (see answer of @Rich) 
 :set fo+=2n           " :help fo-table
 :set tw=47            " your text shall wrap at xyz

(これtw=47は..にとって重要です)を押して段落を再フォーマットしますgqap

注:私は=どちらかとパラグラフを再インデントすることができませんでした、多分他の誰かがそれを理解しました。


a p行をフォーマットするモーションを思い出していただきありがとうございます。私は常に正しいブレースを使用していますが、これは似ています。カウントを追加できることを忘れないでください。たとえば、次の3つの段落をフォーマットしますg q 3 }
クリントPachl
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.