28

これはばかげた質問のように感じますが、インターネット(またはVIMヘルプ)で答えを見つけることができません。Mac OSXでVIM7.2を使用しています。行を72文字で折り返すだけですが、

:set textwidth=72 

効果はありません。textwidthは正しく設定されていますが( ":set textwidth"をクエリするとわかります)、textwidthを設定した後に入力した既存の行も新しい行も折り返されません。新しい行を開始しても、まだ折り返されません。ファイルを開いて閉じます。変更はありません。また、:set wrapmargin = 72(textwidth = 0)を試しましたが、効果はありません。

ここで何が欠けていますか?

4

7 に答える 7

24

gggqG新しいテキスト幅をバッファ全体に適用してみてください。

  • gg手段: バッファの先頭に移動
  • gq手段 : モーションに含まれるテキストを再フォーマットする
  • G 意味 : バッファの最後に移動する

(Zyx の投稿で詳しく説明されているように、フォーマット オプションが正しく設定されていれば機能します)

一方、modelineファイルの先頭または末尾に a を追加することで、幅 72 文字の既存のテキストを表示することもできます。見る:help modeline

のようなものvim:tw=72が動作するはずです。

于 2011-02-28T07:54:58.110 に答える
12

何が

:set formatexpr?
:set indentexpr?
:set cindent?
:set filetype?
:set paste?
:filetype

印刷します。

それらの少なくとも 1 つ (そしてすべてだと思います) が の設定をオーバーライドしますtextwidth

たとえば、C ソース ファイルを編集している場合は、C のインデント規則がオーバーライドされますtextwidth

于 2011-02-28T00:04:23.130 に答える
7

要求されない限り、Vim は何もしません。textwidth(コメント以外の場合tのみ)、c(コメントのみ)、またはその両方があるformatoptions場合(そこに存在しない場合aは、によって設定されたマージンに達した場合にのみ自動ラップされますtextwidth)、またはgqテキストを再フォーマットするために使用する場合。私が間違っていなければ、無視されるようformatexprな設定をすることができます。formatprgtextwidth

于 2011-02-28T04:44:46.067 に答える
3
set formatoptions+=t

これはあなたを助けるかもしれません

于 2014-04-28T16:47:35.147 に答える
2

私はこれとまったく同じ問題を抱えていましたが、次の方法で問題を十分に解決できることがわかりました。

autocmd FileType python setlocal textwidth=79 formatoptions+=t

python選択したファイル タイプに自由に変更してください (例:*またはカンマ区切りのリストpython,ruby,go,sh,javascript)

詳細:h fo-tableformatoptions

于 2016-06-13T08:00:39.217 に答える