我喜欢长行可以显示在多个终端行上;我不喜欢vim在我的实际文本中插入新行。我应该更改.vimrc的哪一部分?
:set wrap
为了在视觉上换行,即使一行文本仍为一行,但Vim会将其显示为多行。使用
:set nowrap
为了将长行显示为一行(即需要水平滚动才能看到整行内容)。
我喜欢长行文本被分成多行在终端上显示
这种可视化/虚拟换行可以通过 wrap
窗口选项来启用:
:set wrap
默认情况下,文本将在无法适应窗口的第一个字符处换行。这意味着如果窗口边界正好位于单词中间,则会在单词中间换行。要将其更改为在单词边界处换行,您还可以执行以下操作:
:set linebreak
这将导致wrap
仅在breakat
设置中的字符处进行换行,该设置默认为空格,制表符和少量标点符号。:set breatat
breakat= ^I!@*-+;:,./?
我不喜欢 vim 在我的 actual text 中插入新的行。
为了关闭物理换行,清除 textwidth
和 wrapmargin
缓冲区选项:
:set textwidth=0 wrapmargin=0
set textwidth=0 wrapmargin=0
是有效的,但如果我将其放入.vimrc
中,则对于纯文本文件等没有效果。我该如何找出并消除覆盖? - qubodup:verbose set textwidth? wrapmargin?
来测试是否有内容覆盖了您的 .vimrc 设置。这将告诉您它们当前的值以及设置它们的位置。有可能是某个插件覆盖了它们。在这种情况下,您可以卸载该插件,或者尝试在您的运行时路径(例如:~/.vim/after
)或自己的自动命令中稍后覆盖插件设置。正确的方法取决于它被重置的位置/方式。 - Laurence Gonsalvesset wrap
和 set linebreak
对我很有帮助。 - Ilia Choly:set formatoptions-=t
t
将插入换行符,使文本在textwidth
设置的宽度处换行。您还可以将此命令放在您的.vimrc
中,只需删除冒号(:
)。tw
处仍然显示竖直线的特点。 - mitchus:set tw=0
VIM不会自动插入换行符,但会保持自动换行。
tw
并想要禁用它,则需要这个。 - young_souvlaki使用:set nowrap
命令,能很好地实现不换行!
set linebreak
很有用;当使用set wrap
时,它会自动换行,但只会在空格处而不是单词中间进行换行。例如:without linebreak the li
ne can be split on
a word
并且
with linebreak on the
line will be
split on
whitespace only
set formatoptions-=t
保持可视文本宽度但在插入模式下不添加新行。
奇怪的是,这样一个简单的设置需要这么多的“咒语”才能正常工作。
现在回答你的问题,对我来说,似乎以下组合可以正常工作:
:set wrap linebreak nolist
这似乎可以防止现有的行断裂,只需换行即可。
以及
set formatoptions=l
In my case, Vitor's comment suggested I run the following:
:verbose set tw?
Doing so gave me the following output:
textwidth=78 Last set from C:\Program Files (x86)\Vim\vim74\vimrc_example.vim
In vimrc_example.vim, I found the relevant lines:
" 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 ...
And I found that my .vimrc is sourcing that file:
source $VIMRUNTIME/vimrc_example.vim
In my case, I don't want
textwidth
to be set for any files, so I just commented out the relevant line in vimrc_example.vim.
set nowrap可以让你在vi/vim中粘贴一个长行时不插入新的换行符,但是这样会导致该行过长而难以阅读。相反地,这一行将成为一个需要滚动才能阅读的长行。
如果要使文本自动换行而不插入换行符,需要使用set wrap(这可能已经是默认设置,无需更改),并且设置set textwidth=0。
在某些系统上,textwidth=0是默认设置。如果您没有发现这种情况,请将set textwidth=0添加到您的.exrc文件中,以便它成为所有vi/vim会话的默认设置。
:set nowrap
并不是您想要的相反效果。请注意不要改变原意。 - Andrew Aylett.txt
文件时出现换行符?如果你使用的是示例.vimrc
文件,它会为纯文本文件设置textwidth
。我想提一下,以防有人遇到和我一样的问题。 - undefined