如何避免Vim自动换行以给定字符(或字符集)结尾的行

时间:2015-02-24 08:05:18

标签: vim word-wrap

我在Vim中启用了自动(硬)包装。也就是说,无论何时写,线都会根据文本宽度自动换行。没关系。

现在,我的问题是:是否可以设置VIM,以便在它以特定字符(或一组字符)结尾时不包裹一行?

这里有一个例子。

让我们说我希望“%”成为我的“nowrap”角色。

现在,如果我输入:“abc abc abc abc%< enter> abc”

我目前正在接受:

abc abc abc abc % abc

虽然我想要:

abc abc abc abc %
abc

这些是我目前的(相关)设置:

textwidth=80
wrapmargin=0
formatoptions=a2tqcrl
nolinebreak

2 个答案:

答案 0 :(得分:0)

内置任何东西;见:help fo-table。我能想到的唯一解决方法是通过autocmd切换'formatoptions'(或'textwidth'):

:autocmd CursorMoved,CursorMovedI * execute 'setlocal fo' . (getline('.') =~# '%$' ? '-=' : '+=') . 'a'

答案 1 :(得分:0)