在emacs中,如何将右括号与开始行的开头对齐?


11

在许多emacs模式下,多行函数调用的默认缩进样式是将右圆括号与函数的其他参数对齐,因此:

function_one(
    arg1,
    arg2
    );

如果闭括号与包含开括号的行的开头对齐,则我更喜欢它。例如:

function_one(
    function_two(
        f2_arg1,
        f2_arg2
    ),
    f1_arg2,
    f1_arg3
);

我该怎么做呢?


1
我一直忽略了同样的冲动了多年!今天是修复它的日子。
Falken教授的合同

Answers:


12
  • 对于从CC模式派生的许多模式(例如c模式,java模式,php模式),请进行定制c-offsets-alist,将arglist-close其设置为c-lineup-close-paren
  • 对于cperl模式,请自定义cperl-indent-parens-as-block为true。
  • 对于cperl模式,GNU Emacs 24.3+,设置cperl-close-paren-offset为负cperl-indent-level
  • 对于GNU emacs 24.3及更高版本中的perl模式,请自定义perl-indent-parens-as-block为true。
  • 对于python模式,此行为在GNU emacs 24.3及更高版本中可以找到。

您可以通过键入自定义变量M-x customize-variable。或者,将以下几行添加到您的~/.emacs

(add-to-list 'c-offsets-alist '(arglist-close . c-lineup-close-paren))
(setq cperl-indent-parens-as-block t)
(setq perl-indent-parens-as-block t)

有什么办法可以使它在Emacs 23.1.1的python模式下工作?
ishmael 2014年

Emacs 23.1.1的解决方案只是在此处获取最新的python-mode.el 。解压它在你的〜/ .emacs.d目录,然后在你的.emacs文件,补充一点:(add-to-list 'load-path (expand-file-name "~/.emacs.d/python-mode.el-6.1.3")) (require 'python-mode)
伊斯梅尔

以及如何使它在CC ++中工作
Falken教授的合同

有什么办法可以在Emacs> = 24.3上获得其他样式python-mode吗?
mgalgs 18-10-5
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.