Vim/gvim 将像这样包装长行:
000000000000000000000000000000000000|
00000000000000 |
11111111111111111111111111111111|
111111111111111111 |
22222222222222222222222222222222|
222222222222222222 |
3333333333333333333333333333|
3333333333333333333333 |
Run Code Online (Sandbox Code Playgroud)
有没有办法让 Vim 显示这些像这样包裹的行?:
000000000000000000000000000000000000|
00000000000000 |
11111111111111111111111111111111|
111111111111111111 |
22222222222222222222222222222222|
222222222222222222 |
3333333333333333333333333333|
3333333333333333333333 |
Run Code Online (Sandbox Code Playgroud)
我希望包裹的行开始稍微超过该行开始位置的缩进。(为了清楚起见,我说的是换行,即软换行符,而不是 textwidth。)
我希望在该行的换行中考虑该行的缩进,以便代码结构不会被换行隐藏。
ret*_*ile 19
更新:此功能在 vim 7.4.338 中出现,但您需要 7.4.354 或更高版本。
所以显然这需要一个 Vim 补丁。Vaclav Smilauer早在 2007 年就有一个补丁。我更新了该补丁以与来自 Fedora 11 的 Vim 7.2.148 一起使用。但它似乎确实可以完成这项工作。
Chr*_*sen 14
在您的 .vimrc 中:
set wrap " soft-wrap lines
" requires +linebreak compile-time option (not in the 'tiny' and 'small' builds); check your :version
set showbreak=-----> " prefix for soft-wrapped lines (no actual line break character)
"set linebreak " soft-wrap lines only at certain characters (see :help breakat)
" If you like line numbers, you may want this instead:
"set number
"set showbreak=------>\ " line up soft-wrap prefix with the line numbers
"set cpoptions+=n " start soft-wrap lines (and any prefix) in the line-number area
Run Code Online (Sandbox Code Playgroud)
或者只需输入:set showbreak=----->
任何会话。
作为参考,我的研究轨迹(Vim 6.2)::help 'wrap'
-> :help 'linebreak'
-> ( :help 'showbreak'
-> :help 'cpoptions'
, :help 'breakat'
)
您的问题的解决方案可以通过在您的vimrc
: 中设置两个参数来实现:
用相同的缩进换行:
set breakindent
还有一个用于缩进软包装线的空间:
let &showbreak=' '
它将以这种方式工作:
111111111111111|
11111111111111|
11111 |
222222222222222|
222222222222 |
333333333333333|
33333 |
Run Code Online (Sandbox Code Playgroud)