Vimが最大テキスト幅を80ではなく79に設定するのはなぜですか?


13

Vimのいくつかのデフォルト値について少し困惑しています。特に、のためにgq{motion}、と言われています

[...]
If the 'textwidth' option is 0, the formatted line
length is the screen width (with a maximum width of
79).

80代わりに、最大幅をに設定するのであれば、もっと意味があるはずだと思いました。

誰かがこれについて私に教えてもらえますか?私は何かが欠けていると思います。


1
さて、80そもそも、かなりarbitrary意的な「標準」なの79でしょうか…なぜですか?現在、列幅のターミナル79で行を折り返す80と、右側にもう少し余裕ができ、読みやすくなります。github.com/vim/vim/blob/...
romainl

2
たぶん、80列全体のターミナルでは、最後の列がラッピングシンボル用に予約されていたのでしょうか?それでも、行番号がオンになっている場合、それらは間違いなく複数の列を取ります。だから、私はまだ困惑しています。また、リンクしたコードから、79使用できる最大値はありますか?読んだことを理解できなかったのかもしれません。
Atcold

3
...または設定textwidthして完了できます。
ヴァンレーザー16

13
80は、古いハードウェア端末の列数と、MS DOS(テキストモード)画面の列数です。 tw=79代わりtw=80に、80列の端末で80文字の行を表示すると余分な改行が印刷されるためです。
佐藤桂

7
改行が常に追加されます。それがたまたま80文字幅の端末で81番目の文字である場合、空の行が続く完全な行を取得するだけです。
佐藤桂

回答:


7

私は79が最初に選ばれた理由は、これがあるという証拠を持っていないが、する一つの良い理由残すあなたが使用している場合ので、その値でそれがある'list'ために含まれる値にeolして'listchars'、その後listcharの表示が80-character-が発生します80文字幅の端末で次の行に折り返す長さの行。

行の長さが79文字しかない場合、80桁目は自由に行末listcharに配置できます。


わかりませんでした。どこで使うの'list'?それは何をすることになっていますか?
Atcold

@Atcoldこれは、通常は表示されない文字(行末など)を画面に表示するオプションです。参照してください:help 'list'か、単に実行してみてください:set listアクションでそれを見るために。
リッチ

:set listあまりしません。私は私が持っていない賭けeollistchars。これが79キャラクターの背後にある理由であるかどうかはよくわかりません。コメントの中で@ sato-katsuraが最良の答えを持っていると思います。
-Atcold

eol'listchars'デフォルトで入っていますが、もちろんあなたの設定の中の何かがそれを削除した可能性があります。私は、これが79が最初に選ばれた歴史的理由であると信じる理由がないと、特に答えに述べています。今、使用するのに良い値であり続ける理由をもう1つ挙げています。
リッチ

@Atcold。デフォルトでは改行は表示されません。そのために余分な文字を予約することは意味がありません。
クリスチャンブラバンド

6

この「デフォルト」は、そのセクションで説明されているようにgqgwコマンドと自動フォーマットにのみ適用されることを理解することが重要です。デフォルトはtextwidthさらに0です、:rightそして:centerデフォルトの80、ではない79。

79が選ばれた理由については、、、およびviには自動フォーマットが存在しないため、vi からの直接のホールドオーバーgqgwはなりません。これはほとんど推測ですが、viの既存の自動ラッピングとの一貫性のために、自動フォーマットのデフォルト79が選択されたと思います。これがために適用されることgqgw副作用です。そうでなければ、80が選択されると予想されるかもしれません。

vi(およびvim if textwidth=0)では、テキストはウィンドウ幅-で自動折り返しを開始しますwrapmargin。ただし、の場合wrapmargin=0、自動ラッピングは行われません。つまり、80文字の制限を持つADM-3Aを使用している場合wrapmargin=1、自動折り返しの最大幅は79です。この動作の利点は、何を見るのを待っている間にカーソルが生きられる場所があることです。次の文字は、ラップする場所を決定する前になります。もちろん、viとvimはカーソルを次の行に置くことができます(非常に長い単語を入力するときに見られるように)が、余分な列を残す方が少しいいです。

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