让c/c++代码更好的缩进

来源:互联网 发布:江苏运时数据 编辑:程序博客网 时间:2024/05/16 19:26

将以下内容追加到开发机自己用户的 ~/.vimrc文件中,可以让vi更好的对C/C++代码进行缩进。

cinoptions是缩进相关的选项。具体的可以查看vim帮助

IndentNamespace是用以防止namespace内部缩进的函数。如果不希望namespace内部内容缩进的话,就加上这个函数;

否则不要加上这个函数(或者将setlocal indentexpr=IndentNamespace()注释掉也行)

set ai

set si

set cin

set cinoptions=:0,g0,t0,l1,Ls,W4,+8,N0

 

function! IndentNamespace()

  let l:cline_num = line('.')

  let l:pline_num = prevnonblank(l:cline_num - 1)

  let l:pline = getline(l:pline_num)

  let l:retv = cindent('.')

  while l:pline =~# '\(^\s*{\s*\|^\s*//\|^\s*/\*\|\*/\s*$\)'

    let l:pline_num = prevnonblank(l:pline_num - 1)

    let l:pline = getline(l:pline_num)

  endwhile

  if l:pline =~# '^\s*namespace.*'

    let l:retv = 0

  endif

  return l:retv

endfunction

 setlocal indentexpr=IndentNamespace()

0 0