2012/08/20

Vim の設定でハマった: textwidth=78

textwidth と formatoptions

Debian Sid で Vim の設定に勤しんでたら、 どれだけvimrcを書いてもtextwidthが変更されていないことに気づいた。 :set コマンドを確かめると、
textwidth=78
formatoptions=croql
となっていた。

解決

これはファイルを読む順番の問題のはずなので、
適当に当たりをつけて grep しまくれば原因がわかる。
そうなんだけど、より賢い方法があった。
:verbose set textwidth
このコマンドによって、最後にこのオプションが設定されたファイルがわかる。
(私の環境では /usr/share/vim/vim73/ftplugin/vim.vim でした。)
あとは、このファイルの該当箇所を書きかえると良い。
(もちろん読みこむ順番の遅いファイルに設定を書いても良い。)
順番については、:set runtimepath? とかすればわかると思う。
とりあえず、今後同じことがあっても、
:verbose set <変数>
とすればいいとわかったので、楽になりました。

疑問

単純にvimを知らないだけなのですが、
:verbose set textwidth?
と最後に ? をつけでも同じ結果ですが、使いわけがあるんでしょうか…。

2 件のコメント:

  1. >最後に ? をつけでも同じ結果

    number などの bool 値を取るオプションは、:set number としただけで設定されてしまいます。
    :set number? と ? を付けることで確認のみ行えます。
    bool 値を取るオプション以外はどちらでも同じです。

    返信削除
  2. なるほど!
    bool値だと設定されてしまうことに気づきませんでした。
    しかも手動で設定された瞬間に、verbose がメッセージを返さなくなるということですね。

    ありがとうございます。

    返信削除