如何在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-=t
。 t
选项将插入换行符,以便按照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会话的默认用户。