Vim 里有个选项是 textwidth,作用就是设置文本宽度,当用户输入一个很长的文本时,如果文本中有空格,那么这行文本就会被 Vim 按照 textwidth 设置的长度自动拆分,拆分成每行最多 textwidth 个字符。它和 Vim 本身的自动折行区别就是,自动折行之后,原来的文字还是一整行,不能用 j k 在折行间切换,只能用 gj gk;而用 textwidth 自动拆分之后,一行文字变成了多行,每行间自动插入了换行符。可以用 j k 在行之间切换。相信只要看过 Vim 帮助文件的人都会有直观感受。
这两天在 Windows 系统上刚装了 gVim 7.4,在输入的时候发现会自动折行,用 :echo &tw 发现 textwidth 设置成了 78,于是在 _vimrc 里加上 set textwidth=0,但设置后,发现 textwidth 仍然是 78,没有被改变。于是 Google 一番,发现了这个,按照上面的方法设置了 letg:leave_my_textwidth_alone,还是没用。启动的时候 Vim 根本不认这个选项。
继续搜索,终于在万能的 StackExchange 上找到了这个,原来 Vim 启动时加载 .vim 文件是有顺序的。按照这里提供的方法,执行
1
2
3
|
:
redir
>d:\output.txt
:
scriptnames
:
redir
END
|
得到我的 Vim 启动时加载的 vim 文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
D:\Program Files (x86)\Vim\_vimrc
D:\Program Files (x86)\Vim\vim74\vimrc_example.
vim
D:\Program Files (x86)\Vim\vim74\
syntax
\
syntax
.
vim
D:\Program Files (x86)\Vim\vim74\
syntax
\synload.
vim
D:\Program Files (x86)\Vim\vim74\
syntax
\syncolor.
vim
D:\Program Files (x86)\Vim\vim74\
filetype
.
vim
D:\Program Files (x86)\Vim\vim74\
menu
.
vim
D:\Program Files (x86)\Vim\vim74\lang\menu_zh_cn.cp936.
vim
D:\Program Files (x86)\Vim\vim74\lang\menu_chinese_gb.936.
vim
D:\Program Files (x86)\Vim\vim74\autoload\
paste
.
vim
D:\Program Files (x86)\Vim\vim74\ftplugin.
vim
D:\Program Files (x86)\Vim\vim74\indent.
vim
D:\Program Files (x86)\Vim\vim74\mswin.
vim
D:\Program Files (x86)\Vim\vim74\colors\desert.
vim
D:\Program Files (x86)\Vim\vim74\
syntax
\nosyntax.
vim
D:\Program Files (x86)\Vim\vim74\delmenu.
vim
D:\Program Files (x86)\Vim\vim74\plugin\delimitMate.
vim
D:\Program Files (x86)\Vim\vim74\autoload\delimitMate.
vim
D:\Program Files (x86)\Vim\vim74\plugin\emmet.
vim
D:\Program Files (x86)\Vim\vim74\plugin\getscriptPlugin.
vim
D:\Program Files (x86)\Vim\vim74\plugin\gzip.
vim
D:\Program Files (x86)\Vim\vim74\plugin\matchparen.
vim
D:\Program Files (x86)\Vim\vim74\plugin\netrwPlugin.
vim
D:\Program Files (x86)\Vim\vim74\plugin\rrhelper.
vim
D:\Program Files (x86)\Vim\vim74\plugin\
spellfile
.
vim
D:\Program Files (x86)\Vim\vim74\plugin\tarPlugin.
vim
D:\Program Files (x86)\Vim\vim74\plugin\tohtml.
vim
D:\Program Files (x86)\Vim\vim74\plugin\vimballPlugin.
vim
D:\Program Files (x86)\Vim\vim74\plugin\zipPlugin.
vim
D:\Program Files (x86)\Vim\vim74\lang\menu_zh_cn.utf-8.
vim
|
用 grep 'textwidth' <filename>,在 vimrc_example.vim 和 menu.vim 中找到了对 textwidth 的设置。最终注释掉 vimrc_example.vim 里的
1
|
autocmd
FileType
text
setlocal
textwidth
=78
|
就可以了~~