如何在vim中停止换行

时间:2010-02-17 11:01:49

标签: vim

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

11 个答案:

答案 0 :(得分:269)

使用

:set wrap

要直观地换行,即该行仍然是一行文本,但Vim会在多行上显示它。

使用

:set nowrap

将长行显示为一行(即您必须水平滚动才能看到整行)。

答案 1 :(得分:183)

  

我喜欢长线显示在多个终端线上

使用wrap窗口选项启用此类视觉/虚拟换行:

set wrap
  

我不喜欢vim在我的实际文本中插入换行符。

要关闭物理换行,请清除textwidthwrapmargin缓冲区选项:

set textwidth=0 wrapmargin=0

答案 2 :(得分:30)

我不确定我完全理解,但您可能正在寻找'formatoptions'配置设置。尝试类似:set formatoptions-=t的内容。 t选项将插入换行符,以textwidth设置的宽度进行文本换行。您也可以将此命令放在.vimrc中,只需删除冒号(:)。

答案 3 :(得分:26)

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

答案 4 :(得分:23)

:set tw=0

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

答案 5 :(得分:16)

您可能会发现set lbr有用;在set wrap上使用without lbr the li ne can be split on a word 将包装,但只在空格上切割线而不是在单词的中间。

e.g。

with lbr on the
line will be
split on 
whitespace only

{{1}}

答案 6 :(得分:8)

set formatoptions-=t保持视觉文字宽度,但不会在插入模式下添加新行。

答案 7 :(得分:4)

奇怪的是,这样一个简单的设置需要这么多'hocus-pocus'才能工作。

现在回答你的问题,对我而言似乎可以使用以下内容:

:set wrap linebreak nolist

(这似乎可以防止现有的线条破裂,只是换行。)

set formatoptions=l

(这可以防止新的/已修改的行被破坏,而+ =不会对我这样做,因为其他设置/插件似乎找到空间并添加自己的选项覆盖我的。)

答案 8 :(得分:4)

如果像我一样,你在Windows上运行gVim,那么你的 .vimrc 文件可能会发送另一个“示例”Vimscript文件,该文件自动设置textwidth(在我的情况下为{ {1}})用于文本文件。

My answer与此问题类似的问题 - How to stop gVim wrapping text at column 80 - 在the Vi and Vim Stack Exchange site上:

  

就我而言,Vitor's comment建议我执行以下操作:

78
     

这样做给了我以下输出:

:verbose set tw?
     

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

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

我发现我的 .vimrc 正在寻找该文件:

" 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

  ...
     

在我的情况下,我不希望为任何文件设置source $VIMRUNTIME/vimrc_example.vim ,所以我只是在 vimrc_example.vim 中注释掉相关的行。

答案 9 :(得分:3)

set nowrap 允许您在没有vi / vim添加换行符的情况下粘贴一条长行是正确的,但是为了便于阅读,该行不会被视觉包裹。相反,它只需要滚动一条长线。

要让线条可视化换行但没有插入换行符,请设置换行(可能是默认值,因此不需要设置)和 set textwidth = 0

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

答案 10 :(得分:0)

我个人去过:

  • set wrap
  • set linebreak
  • set breakindent
  • set showbreak=ͱ

一些解释:

  • wrap选项以视觉方式换行,而不必水平滚动
  • linebreak用于将长行换成一个特定的字符,而不是在行太长时(例如在单词中间)换行。默认情况下,它在空格(单词分隔符)上断开,但是您可以使用breakat对其进行配置。它还不会按照OP的需要在文件中插入EOL
  • breakat是在视觉上将其换行的字符。如果您想在两个单词之间的空白处断开,则无需进行修改。
  • breakindent可以在断行时直观地缩进。
  • showbreak可以设置指示此中断的字符。

有关更多信息,请参见vim中的:h <keyword>

请注意,如果您选择此路线,则无需修改textwidthwrapmargin