如何在vim中停止换行

我喜欢长线显示在多个terminal线上; 我不喜欢vim在我的实际文本中插入换行符。 .vimrc的哪一部分我应该改变?

使用

 :set wrap 

要直观地包装线,即线仍然是一行文本,但Vim显示在多行。

使用

 :set nowrap 

将长行显示为一行(即,您必须水平滚动以查看整行)。

这就是你想要的:

 " this enables "visual" wrapping set wrap " this turns off physical line wrapping (ie: automatic insertion of newlines) set textwidth=0 wrapmargin=0 

我不确定我完全理解,但是您可能正在寻找'formatoptions'configuration设置。 试试像这样:set formatoptions-=tt选项将插入换行符,以便按照textwidth设置的宽度进行文本换textwidth 。 你也可以把这个命令放在你的.vimrc ,只要去掉冒号( .vimrc即可。

:set tw=0

VIM不会自动插入换行符,但会保持换行。

使用:set nowrap ..就像一个魅力!

你可能会发现set lbr有用; 在这个包装上将包装,但只切割空白的行,而不是在一个字的中间。

例如

 without lbr the li ne can be split on a word 

 with lbr on the line will be split on whitespace only 

奇怪的是,这样一个简单的设置将需要这么多的“重点”工作。

现在回答你的问题,对我来说,它似乎与以下的组合工作:

 :set wrap linebreak nolist 

(这似乎防止现有的线路断开,只是换行。)

 set formatoptions=l 

(这可以防止新的/被编辑过的行被打破,而+ =不会为我做,因为其他的设置/插件似乎find空间,并添加自己的选项覆盖我的。)

如果像我一样,在Windows上运行gVim,那么.vimrc文件可能是另一个“示例”Vimscript文件,它会自动为文本文件设置textwidth (在我的情况下为78 )。

我对这个类似的问题的回答 – 如何停止gVim在第80列的包装文本 – 在Vi和Vim Stack Exchange站点上 :

对我来说, Vitor的评论build议我运行以下内容:

 :verbose set tw? 

这样做给了我以下输出:

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

vimrc_example.vim中 ,我find了相关的行:

 " 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中注释掉相关行。

set formatoptions-=t保持可视化的textwidth但不插入新行在插入模式。

这是正确的, 设置nowrap将允许你粘贴在没有vi / vim添加换行符的长行,但是这行不是为了方便阅读而直观地包装。 它只是一个很长的行,你必须滚动。

为了使直线可视化,但不插入换行符,请设置换行 (可能是默认设置,因此不需要设置),并设置textwidth = 0

在某些系统上, textwidth = 0的设置是默认的。 如果您没有发现这种情况,请将set textwidth = 0添加到您的.exrc文件,以便它成为所有vi / vim会话的默认用户。