Vim:自动换行适用于C ++注释但不适用于代码

时间:2017-07-01 02:52:03

标签: c++ vim line-breaks

在没有人看到这个问题之后,我正在Vi and Vim交叉发布这个问题,并且还要阅读it is acceptable to post Vim questions on SO

我使用Vim进行C和C ++编码。以下是我的.vimrc

execute pathogen#infect()

set backspace=indent,eol,start
set shiftwidth=2
set softtabstop=2
set expandtab
set smarttab
set cino+=(0
set statusline=
set statusline +=\[%n]    " buffer number
set statusline +=\%F      " File
set statusline +=%=%l/%L  " currentLine/totalLine
set statusline +=%4v      " virtual column
set laststatus=2
set number
set nowrap
set ruler                 " show the cursor position all the time
set scrolloff=7           " start scrolling when cursor is 7 lines from top/bottom
set t_Co=256
set textwidth=80
set formatoptions=croqlt  " Hard-wrap when typing exceeds <textwidth>
set hlsearch
syntax on
filetype plugin indent on
autocmd FileType make set noexpandtab shiftwidth=4 softtabstop=0
colorscheme torte

我不是专家vim脚本编写者 - 以上是谷歌搜索拼凑在一起我想要的各种行为。

我想要80个字符处的自动换行符,以便文本被智能地包裹在80个字符处(即字符不会在边界处被切断,但是在最近的空白处会切断一行文本) - 就像我输入的那样。我被引导相信上面的textwidthformatoptions字段应该这样做,但最终的行为是只有评论是明智的断行,不是代码。例如。以下是Vim在输入时显示的内容:

#include <iostream>

int main( int argc, char* argv[] )
{
  // Here's some C++-style comments. Happily, this line gets intelligently
  // line-broken as I type.

  int a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, why_does_this_reach_this_far_without_linebreaking;

  return 0;
}

任何人都可以告诉我需要在.vimrc中添加/更正哪些内容以启用代码的智能换行符?

0 个答案:

没有答案