原因不明のgqインデントの問題


11

このテキストをVimに挿入します。

t tttt ttttttttt tt tttt tt ttt tttttt-tttt-ttttttt
tttttttttttttttttttttttttttttttttttttttttttttttttttttt ttttt ttt ttt tttttt
ttttttt tttt ttttttt: ttttttt tt ttttttt, ttttttt tt tttttt, tttttt tt ttttttt,
tttttt tt tttttt ttt. t tttttt tt ttt (tttt) ttttttt-tttttt-tt-ttttttt tttttt
for the "tttttt in ttttttt" part of the issue (in the previous week I have
worked on the "objects in objects" part). This part is about making it
possible for the end user to add arrays in objects. First of all I checked
that the current implementation allows putting arrays in objects at least
from the schema passed to the plugin constructor.

次に、これらすべての行を視覚的に選択し、を押しgqます。内容は:

t tttt ttttttttt tt tttt tt ttt tttttt-tttt-ttttttt
tttttttttttttttttttttttttttttttttttttttttttttttttttttt ttttt ttt ttt tttttt
ttttttt tttt ttttttt: ttttttt tt ttttttt, ttttttt tt tttttt, tttttt tt ttttttt,
tttttt tt tttttt ttt. t tttttt tt ttt (tttt) ttttttt-tttttt-tt-ttttttt tttttt
for the "tttttt in ttttttt" part of the issue (in the previous week I have
    worked on the "objects in objects" part). This part is about making it
    possible for the end user to add arrays in objects. First of all I checked
    that the current implementation allows putting arrays in objects at least
    from the schema passed to the plugin constructor.

最後の4行の先頭に空白がある理由を教えてください。for5行目の最初の単語()は、一部のプログラミング言語ではforループを開始しますが、これらの行が保存されていないファイルまたはMarkdownファイルにある場合でも、Vimは新しいインデントされたコードブロックを開始する必要があると考えます。 ?この動作を回避してgq、空白を挿入しないようにするにはどうすればよいですか?

私のcomments設定にはデフォルト値があります:s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-ここで私の.vimrcファイルを見ることができます。

更新: My foformatoptions)オプションには値がtcqあり、formatexprおよびformatprgオプションは空です。


そして、ファイルが保存されている場合/新しくない場合、何か違いはありますか?
Gabriel Petrovay 2015年

同じ動作です。
silviubogan 2015年

次に、問題を簡単にするために、テキストからその情報を削除できます。
Gabriel Petrovay 2015年

@GabrielPetrovay、フィードバックありがとうございます!:-)質問を更新しました。
silviubogan 2015年

'fo'オプションと 'formatexpr'およびformatprgオプションは何ですか?
Christian Brabandt 2015年

回答:


18

問題は、で設定smartindentしたことです~/.vimrc。このsmartindentオプションにより、Vimはインデント時にテキストがCのようなプログラミング言語であると想定します。特にfor、キーワードのように扱い、次の行に追加のインデントレベルを与えます。見る

:help 'smartindent'
:help 'cinwords'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.