我喜欢使用三元?:运算符来编写代码:
std::string result = input.empty() ? createNewItem()
: processInput( input );
如何配置vim,以便在键入createNewItem()
后按下Return键下一行,以便光标与上一个?
在同一列中,这样我就可以继续键入{ {1}}?
我尝试查看: processInput( input );
设置,但我没有看到任何相关内容。
答案 0 :(得分:1)
您可以至少部分地添加括号来实现此目的:
std::string result = (input.empty()
? createNewItem()
: processInput( input ));
这只有在你将表达式分为三行时才有效:I 通常这样做,但我必须承认你的格式看起来非常好看 在表达式很短的情况下可读。
过去,我发现vim邮件列表非常有用 问题。它曾经被门控给谷歌团体,所以你可以咨询 它好像是那里的一个团体;我不确定当前的状态 (因为我无法从工作中访问Google网上论坛)。
答案 1 :(得分:1)
受roughly similiar question的启发,我锻炼了我的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
以切换加载缩进插件。它似乎工作得很好!