Answers:
用
:set wrap
为了视觉上换行,即该行仍然是一行文本,但是Vim将其显示在多行上。
用
:set nowrap
将长行显示为仅一行(即,您必须水平滚动才能看到整行)。
我喜欢长行显示在多个终端行上
这种视觉/虚拟换行是通过wrap
window选项启用的:
set wrap
我不喜欢vim在我的实际文本中插入换行符。
要关闭物理换行,请同时清除textwidth
和wrapmargin
缓冲区选项:
set textwidth=0 wrapmargin=0
set textwidth=0 wrapmargin=0
可以,但是如果我放进去.vimrc
,它对纯文本文件没有任何作用。如何找出并消除覆盖?
:verbose set textwidth? wrapmargin?
。这将告诉您它们的当前值以及它们的设置位置。您可能有一个覆盖它们的插件。在这种情况下,您可以卸载该插件,或者稍后尝试在运行时路径(例如:)中~/.vim/after
或使用您自己的自动命令覆盖该插件设置。正确的方法取决于重置位置/方式。
set wrap
而set linebreak
正是这样做是为了我。
您可能会发现set lbr
有用;加上set wrap
此位将换行,但仅在空白处切线,而不是在单词中间。
例如
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
set formatoptions-=t
保持可视文本宽度,但在插入模式下不添加新行。
如果像我一样在Windows上运行gVim,则您的.vimrc文件可能正在寻找另一个“示例” Vimscript文件,该文件会自动为文本文件设置textwidth
(在我的情况下为78
)。
我对类似问题的答案 – 如何在Vi和Vim Stack Exchange网站上停止在第80列中gVim包装文本:
就我而言,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中注释掉了相关行。
autocmd FileType text setlocal textwidth=0
到vimrc文件中,该文件解决了其他提议的解决方案没有解决的问题。
:set nowrap
是你想要什么:(相反。