C++ 如何使vim与三元数对齐?:运算符正确对齐?
我喜欢使用三元?:运算符编写代码,如下所示:C++ 如何使vim与三元数对齐?:运算符正确对齐?,c++,vim,indentation,C++,Vim,Indentation,我喜欢使用三元?:运算符编写代码,如下所示: std::string result = input.empty() ? createNewItem() : processInput( input ); 如何配置vim,以便在键入createNewItem()后按Return键时缩进下一行,使光标与上一行位于同一列?以便我可以继续键入:processInput(input) 我尝试查看了cinoptions值设置,但没有看到任
std::string result = input.empty() ? createNewItem()
: processInput( input );
如何配置vim,以便在键入createNewItem()
后按Return键时缩进下一行,使光标与上一行位于同一列?
以便我可以继续键入:processInput(input)代码>
我尝试查看了cinoptions值设置,但没有看到任何相关内容。通过添加括号至少可以部分实现这一点:
std::string result = (input.empty()
? createNewItem()
: processInput( input ));
只有将表达式拆分为三行时,此选项才有效:I
通常是这样,但我不得不承认你的格式看起来很好,而且
在表达式较短的情况下可读
在过去,我发现vim邮件列表对这类邮件非常有用
毫无疑问。它过去是谷歌集团的门户,所以你可以咨询
就好像那里有一群人一样;我不确定目前的状况是什么
(因为我无法从工作中访问谷歌群组) 受a的启发,我练习了我的vimscript fu,并创建了一个小脚本来完成这项工作:
if (!exists("*CppIndentDepth"))
function CppIndentDepth()
let lineno = v:lnum
let lastQuestionMark = match(getline(lineno-1), "?[^?]*")
if lastQuestionMark != -1
return lastQuestionMark
endif
return cindent(lineno)
endfunction
endif
set indentexpr=CppIndentDepth()
我将此文件保存为vimfiles/indent/after/cpp.vim
,并将filetype indent on
添加到我的.vimrc
中,以切换缩进插件的加载。它似乎工作得很好