如何防止vim中的断线
我喜欢长线显示在多条终端线上;我不喜欢vim在我的实际文本中插入新行。.vimrc的哪一部分应该更改?使用如何防止vim中的断线,vim,Vim,我喜欢长线显示在多条终端线上;我不喜欢vim在我的实际文本中插入新行。.vimrc的哪一部分应该更改?使用 :set wrap 以可视方式换行,即该行仍然是一行文本,但Vim在多行上显示它 使用 将长线显示为一行(即,必须水平滚动才能看到整行) 我不确定是否完全理解,但您可能正在寻找“formatoptions”配置设置。尝试类似于:set formatoptions-=t。t选项将插入换行符,使文本以textwidth设置的宽度换行。您也可以将此命令放入.vimrc,只需删除冒号(:) 我喜
:set wrap
以可视方式换行,即该行仍然是一行文本,但Vim在多行上显示它
使用
将长线显示为一行(即,必须水平滚动才能看到整行) 我不确定是否完全理解,但您可能正在寻找“formatoptions”配置设置。尝试类似于
:set formatoptions-=t
。t
选项将插入换行符,使文本以textwidth
设置的宽度换行。您也可以将此命令放入.vimrc
,只需删除冒号(:
)
我喜欢在多条终端线上显示长线
通过wrap
窗口选项启用这种可视/虚拟换行:
set wrap
我不喜欢vim在我的实际文本中插入新行
要关闭物理换行,请清除textwidth
和wrapmargin
缓冲区选项:
set textwidth=0 wrapmargin=0
使用
:立即设置RAP
。。工作起来很有魅力 :设置tw=0
VIM不会自动插入换行符,但会保持换行。您可能会发现
设置lbr
很有用;使用<代码> SETRAP 这将包装,但只在空白处切割线,而不是在单词中间。
e、 g
及
奇怪的是,如此简单的设置需要如此多的“胡闹”才能起作用 现在回答你的问题,对我来说,它似乎与以下因素结合在一起:
:set wrap linebreak nolist
:verbose set tw?
(这似乎可以防止现有线断开,只需缠绕即可。)
及
(这可以防止新的/编辑的行中断,而+=不适合我,因为其他设置/插件似乎找到了空间,并添加了自己的选项来覆盖我的设置。)如果像我一样,您正在Windows上运行gVim,那么您的.vimrc文件可能正在寻找另一个自动设置
textwidth
(在我的例子中是78
)用于文本文件
与此类似的问题–关于:
在我的案例中,建议我运行以下程序:
:set wrap linebreak nolist
: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中的相关行
SETNOWRAP允许您在不添加vi/vim换行符的情况下粘贴一条长线,这是正确的,但是这条线并不是为了便于阅读而直观地包装的。相反,您只需要滚动浏览一条长线
要使行以可视方式换行,但不在其中插入换行字符,请设置换行(这可能是默认设置,因此不需要设置),并设置textwidth=0
在某些系统上,默认设置为textwidth=0。如果您没有发现这种情况,请将set textwidth=0添加到.exrc文件中,以便它成为用户在所有vi/vim会话中的默认设置。
set formatoptions-=t
保留可视的textwidth,但在插入模式下不添加新行。用于:
设置换行
设置换行符
设置breakindent
设置showbreak=ͱ
选项直观地将行包装起来,而不必水平滚动wrap
<>代码>线段用于在特定字符上包覆长线,而不是在直线太长的任何地方,例如在单词中间。默认情况下,它在空格(单词分隔符)上断裂。,但您可以使用
breakat
对其进行配置。它也不会根据需要在文件中插入EOL
breakat
是一个字符,它将在该字符中可视地打断行。如果您希望在两个单词之间的空白处打断,则无需修改它breakindent
允许在行中断时直观地缩进行showbreak
允许设置指示此中断的字符:h
请注意,如果您选择此路线,则无需修改
textwidth
或wrapmargin
。为了清晰起见:您喜欢在多个终端线上显示长线;您不喜欢vim将新线插入到实际文本中?如果是这样,则:set nowrap
与您想要的相反:(.@Andrew:是的,你的总结正是我想要的,但它与OP定义的通缉行为正好相反……:P@Morlock,但回答了我的问题,谷歌把我带到这里:)有键盘快捷键吗?@PiniCheyni,添加到你的.vimrc文件:nnoremap:set invwrap,然后你可以使用Ctrl+W来切换文本换行。谢谢你们的提示。我选择了:set nowrap和:set textwidth=0。当我键入时效果很好,我仍然想看到“视觉”80列限制,我不希望vim在我输入第80列后自动添加换行符。我该怎么做?这正是我想要的答案,但它不是OP问题的答案。将此作为顶部答案有点误导。我不知道如何解决此问题。我只会编辑您的答案,以同时回答原始问题stion.但是已经有一个正确的答案,投票率几乎一样高。所以我只是投票切换了两个答案。这正是我没有寻找的答案,也不是OP问题的答案。这不是问题的答案。我想要的正好相反…当我打字时,我仍然想看到“视觉”80列限制,我不想要vi
" 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