在我们的项目中,将有
#ifdef __cplusplus
extern "C" {
#endif
int foobar(); // <-- vim auto indent it
如何设置vimrc或c-support让vim不自动缩进只是为了extern“C”旁边使用Marco替换extern“C”{?
答案 0 :(得分:0)
vim中的缩进通过'cinoptions'配置。但它不支持“extern C”。见answer on similar question。
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*extern "C".*'
let l:retv = 0
endif
return l:retv
endfunction
setlocal indentexpr=IndentNamespace()
将此保存为〜/ .vim / indent / cpp.vim
答案 1 :(得分:0)
我发现extern "C" { //}
对我有用。不知道这是否取决于任何具体
cindent
或cino
设置。