我最近从vim切换到emacs, 在使用emacs编写c++程序的时候, 我发现了一个和缩进相关的问题.
每当我将for和if写在同一行的时候, 会得到下面这个样子的缩进.
void list_all() {
for (size_t i = 0; i < vec2.size(); i++) if (vec2[i]) {
for (auto pr: vec1) {
}
}
}
但是我实际期望的缩进其实是这个样子的:
void list_all() {
for (size_t i = 0; i < vec2.size(); i++) if (vec2[i]) {
for (auto pr: vec1) {
}
}
}
最初, 我看了emacs wiki之后觉得可能是预设的缩进样式不对, 于是添加了如下代码在.emacs中:
(add-hook 'c++-mode-hook
(lambda()
(c-set-style "stroustrup")))
但没有起到什么效果.
之后我仔细思考了一下, 可能缩进程序的想法是这个样子的:
void list_all() {
for (size_t i = 0; i < vec2.size(); i++)
if (vec2[i]) {
for (auto pr: vec1) {
}
}
}
但是我不太想改我自己写代码的习惯. 有谁能帮我想个解决的办法吗?
p.s. 这个是在我机器上的效果