Ida*_*n K 35 c++ emacs indentation
我正在使用c ++模式运行emacs 23并且存在一些缩进问题.假设我有这个代码:
void foo()
{
if (cond)
{ <---
int i;
...
} <---
}
Run Code Online (Sandbox Code Playgroud)
这似乎是自动缩进的默认行为.但是我想改变它所以它会是这样的:
void foo()
{
if (cond)
{
int i;
...
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法通过配置c ++模式或我的.emacs文件轻松完成此操作?
Ale*_*x B 41
我的.emacs文件中有以下内容:
(defun my-c++-mode-hook ()
(setq c-basic-offset 4)
(c-set-offset 'substatement-open 0))
(add-hook 'c++-mode-hook 'my-c++-mode-hook)
Run Code Online (Sandbox Code Playgroud)
您可以通过在任何行上按[ctrl-c ctrl-s]来确定要编辑的偏移量.if
它会在第一行用支撑后说出来substatement-open
.
jus*_*nhj 22
这是我的......这与visual studio的默认设置相匹配.
(defun my-c-mode-common-hook ()
;; my customizations for all of c-mode, c++-mode, objc-mode, java-mode
(c-set-offset 'substatement-open 0)
;; other customizations can go here
(setq c++-tab-always-indent t)
(setq c-basic-offset 4) ;; Default is 2
(setq c-indent-level 4) ;; Default is 2
(setq tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60))
(setq tab-width 4)
(setq indent-tabs-mode t) ; use spaces only if nil
)
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
Run Code Online (Sandbox Code Playgroud)
简短回答:将此行放入.emacs文件中:
(c-set-offset 'substatement-open 0)
Run Code Online (Sandbox Code Playgroud)
答案很长:......
对于我们这些刚接触emacs-lisp的人来说,http : //www.cs.cmu.edu/上有一个非常简单的方法:
转到要缩进的行
键入CC CO(字母"O",不是零)
按Enter键接受默认建议
键入"0"(即零),无需额外缩进,按Enter键
键入Tab以重新加入该行.
在这种情况下,未来"{"将具有正确的选项卡设置,直到您重新启动emacs.
这个方法的好处是,您实际上可以看到要更改的lisp代码.您可以输入.emacs文件:
(c-set-offset 'SYNTACTIC-SYMBOL OFFSET)
Run Code Online (Sandbox Code Playgroud)
此外,您可能需要查看程序AStyle以自动格式化emacs之外的C++源代码.
归档时间: |
|
查看次数: |
33906 次 |
最近记录: |