c - 括号内的缩进而不是 emacs 中的右括号旁边

标签 c emacs indentation

我终于实现了飞跃,离开 Vim 转向 Emacs,我可以说我已经非常高兴了(现在还不是速度......但那会 catch 来的)。

但是,我正在努力弄清楚这件事......

例如,当我在 C 中编写一个 for 循环并添加左大括号时,这就是我得到的结果

code1

然后我按 C-j 展开大括号,这就是我结束的地方。

code2

问题是,我习惯于此结束(我的 vim 就是这样配置的)

code3

但我不知道该怎么做...我刚开始使用 emacs 和 lisp,似乎已经被那个小东西压垮了。我已经映射了一个和弦,所以当我按下 kk 时,我会在当前行上方插入一个空行并正确缩进。所以现在,我所做的是RET kk,但我希望我的返回键能够自己完成。

最佳答案

您可以使用 c-hanging-braces-alist 配置换行符的插入位置

Hanging Braces
To specify which kinds of braces you want auto-newlines put around, you set the style variable c-hanging-braces-alist.

例如,将大括号与 for 保持在同一行,并在其后插入一个换行符

(custom-set-variables
 '(c-hanging-braces-alist (quote ((substatement-open . (after))))))

另一种方法是使用 Yasnippet并定义一个合适的模板

# -*- mode: snippet -*-
# name: for
# --
for ($1; $2; $3) {
$0
}

现在你可以输入fortab,Yasnippet会自动插入

for (; ; ) {

}

并等待您插入字段,完成后将光标留在大括号之间。

关于c - 括号内的缩进而不是 emacs 中的右括号旁边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23792526/

相关文章:

python - 缩进中制表符和空格的使用不一致

c - 在 linux 中实现 ls -R 命令

c++ - glibc 检测到错误

macos - Emacs 启动警告

css - vim 中凌乱的 css 缩进

visual-studio-2012 - 复制粘贴后如何禁用自动制表符缩进更改?

c - 为什么 "implicit declaration of function"只是一个警告?

c - 该函数不返回任何值

emacs - 同时读取多个 Emacs 信息文件

Emacs 24 : Mode-Line Style