vimで改行を停止する方法


257

長い行が複数の端末行に表示されるのが好きです。vimが実際のテキストに改行を挿入するのが好きではありません。.vimrcのどの部分を変更する必要がありますか?


7
明確にするために、あなたは長い行が複数の端末回線の上に表示されるのを好みます。vimが実際のテキストに改行を挿入するのが嫌いですか?もしそうなら、:set nowrapあなたは何をしたいの反対がある:(。
アンドリューAylett

@Andrew:はい、あなたの要約は私が望んでいるものとまったく同じです
Haiyuan Zhang

回答:


304

使用する

:set wrap

行を視覚的に折り返す、つまり行はまだ1行のテキストですが、Vimは複数行に表示します。

使用する

:set nowrap

長い行を1行として表示するには(つまり、行全体を表示するには水平方向にスクロールする必要があります)。


3
ヒントをありがとう。:set nowrapと:set textwidth = 0でうまくいきました
Robert Beltran 2013年

5
タイプしても80列の「視覚的」な制限を確認したいのですが、80番目の列の後にタイプするとvimがラインフィードを自動的に追加したくありません。私はどのように行いますか?
Olivier Pons 2015年

7
これはまさに私が探していた答えですが、OPの質問に対する答えではありません。これをトップの回答とするのは少し誤解を招きます。この状況を修正する方法がわかりません。私はあなたの答えを編集して、元の質問にも答えます。しかし、すでに投票されているのと同じくらい正しい答えがすでにあります。したがって、私は2つの答えを入れ替えることに投票しました。
ダニエルダラボス2016年

3
これはまさに私がされた答えはありませんを探して、それはだない OPの質問への答え。
peeol 2018年

これは質問に対する答えではありません。

194

長い行が複数の端末行に表示されるのが好きです

この種類の視覚的/仮想的な行の折り返しは、wrapウィンドウオプションで有効になります。

set wrap

vimが実際のテキストに改行を挿入するのが好きではありません。

物理的な行の折り返しをオフにするには、textwidthおよびwrapmarginバッファオプションの両方をオフにします。

set textwidth=0 wrapmargin=0

1
ありがとう!set textwidth=0 wrapmargin=0動作しますが、に入れて.vimrcも、プレーンテキストファイルなどには効果がありません。上書きを見つけて削除するにはどうすればよいですか?
qubodup 16

7
@qubodup問題が発生しているファイルを開いて.vimrc設定を上書きしているかどうかをテストできます:verbose set textwidth? wrapmargin?。これにより、それらの現在の値とそれらが設定された場所がわかります。それらを上書きするプラグインがある可能性があります。その場合は、そのプラグインをアンインストールするか、後でランタイムパス(例:)~/.vim/afterまたは独自の自動コマンドでプラグイン設定を上書きしてみてください。正しい方法は、リセットされる場所/方法によって異なります。
ローレンスゴンサルベス2016

set wrapそしてset linebreak私のためにそれをしたのです。
Ilia Choly 2018年

36

完全に理解しているとは思いませんが、「formatoptions」構成設定を探している可能性があります。のようなものを試してください:set formatoptions-=t。このtオプションは改行を挿入して、で設定された幅でテキストを折り返しますtextwidth。このコマンドをに.vimrc追加して、コロン(:)を削除することもできます。


3
これは、OPの希望に対処するための最良のオプションのようです。vimがまだ垂直線を表示しているのが好きtwです。
ミッチャス'19年

3
これが、OPの質問に実際に対処する唯一の回答です。他のほとんどは反対を行います。OPは長い行が折り返されて表示されることを望んでいますが、vimは自動的に改行を挿入しません。
セバスチャン2018

33

使用:set nowrap..魅力のように動作します!


10
OPが望んだ動作として定義するものの逆を行うことを除いて...:P
Morlock

5
@Morlock、しかし私が持っていた質問に答え、グーグルはここに私を導いた:)
Ben Usman

これのためのキーボードショートカットはありますか?
Pini Cheyni

@PiniCheyni、.vimrcファイルに追加:nnoremap <Cw>:set invwrap <CR>次に、Ctrl + Wを使用してテキストの折り返しを切り替えることができます。
reas0n 2017年

30

:set tw=0

VIMは改行を自動挿入しませんが、行の折り返しは維持します。


3
私はまったく逆にしたい...それは私がまだ入力したときに「視覚的な」80列の制限を見たいと思っています。私はどのように行いますか?
Olivier Pons 2015年

16

あなたはset lbr役に立つかもしれません。with set wraponこれは折り返しますが、単語の途中ではなく空白の行のみをカットします。

例えば

without lbr the li
ne can be split on
a word

そして

with lbr on the
line will be
split on 
whitespace only

オプションは省略しないようにすることを強くお勧めします。将来的には、解決した内容を理解するためにヘルプシステムを検索する必要があるため、set nolinebreak代わりに使用してください。set lbr
SergioAraujo

12

set formatoptions-=t 視覚的なテキスト幅を維持しますが、挿入モードで新しい行を追加しません。


4

そのような単純な設定が機能するためにこの量の「ホーカスポーカス」を必要とすることは奇妙です。

今あなたの質問に答えるために、私にとっては次の組み合わせで動作するように見えました:

:set wrap linebreak nolist

(これにより、既存の行が壊れるのを防ぐように見えます。折り返すだけです。)

そして

set formatoptions=l

(これにより、新しい/編集された行が壊れることがなくなりますが、他の設定/プラグインがスペースを見つけて自分のものを上書きする独自のオプションを追加しているように見えるため、+ =はそれを行いません。)


4

私のように、WindowsでgVimを実行している場合、.vimrcファイルがテキストファイルを自動的にtextwidth(私の場合はに78)設定する別の「例」のVimscriptファイルを取得している可能性があります。

私の答え -この1と同様の質問に対する欄80でのgvimの折り返しのあるテキストを停止する方法 -のViとVimのスタック交換サイト

私の場合、Vitorのコメントから、以下を実行するよう提案されました。

:verbose set tw?

これにより、次の出力が得られました。

textwidth=78
      Last set from C:\Program Files (x86)\Vim\vim74\vimrc_example.vim

vimrc_example.vim、私は関連する行が見つかりました:

" Only do this part when compiled with support for autocommands.
if has("autocmd")

  ...

  " For all text files set 'textwidth' to 78 characters.
  autocmd FileType text setlocal textwidth=78

  ...

そして、私の.vimrcがそのファイルをソースしていることがわかりました。

source $VIMRUNTIME/vimrc_example.vim

私の場合、textwidthどのファイルにも設定したくないので、vimrc_example.vimの関連する行をコメント化しました。


1
vimrc_example.vimファイルを編集するのではなく、私autocmd FileType text setlocal textwidth=0はvimrcファイルに追加しただけで、他の提案された解決策で解決できなかった問題を修正しました。
GrandAdmiral 2017

3

nowrap設定するのは正しいあなたがviの/ vimのは、改行を追加せずに長蛇の列に貼り付けることができるようになりますが、その後の行は、視覚的に読みやすいように改行されていません。代わりに、スクロールしなければならないのは1行だけです。

行を視覚的に折り返すが改行文字が挿入されないようにするには、折り返し設定し(おそらくデフォルトなので、設定する必要はありません)、textwidth = 0設定します

一部のシステムでは、textwidth = 0の設定がデフォルトです。それが当てはまらない場合は、.exrcファイルにset textwidth = 0を追加して、すべてのvi / vimセッションでユーザーのデフォルトになるようにします。

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