Wie richte ich in Emacs schließende Klammern am Anfang der Eröffnungszeile aus?

11

Der Standard-Einrückungsstil für mehrzeilige Funktionsaufrufe in vielen Emacs-Modi besteht darin, die schließende runde Klammer an den anderen Argumenten der Funktion auszurichten.

function_one(
    arg1,
    arg2
    );

Ich würde es vorziehen, wenn die schließende Klammer am Anfang der Linie ausgerichtet wäre, die die öffnende Klammer enthält. Zum Beispiel:

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

Wie mache ich das?

Mavit
quelle
1
Ich habe den gleichen Drang seit Jahren ignoriert ! Heute ist der Tag, um das Problem zu beheben.
Prof. Falken Vertrag verletzt

Antworten:

12
  • Passen Sie für die vielen vom CC-Modus abgeleiteten Modi (z. B. C-Modus, Java-Modus, PHP-Modus) c-offsets-alistdie arglist-closeEinstellungen so an, dass sie auf eingestellt sind c-lineup-close-paren.
  • Passen Sie den Cperl-Modus cperl-indent-parens-as-blockan true an.
  • Für den Cperl-Modus wird GNU Emacs 24.3+ cperl-close-paren-offsetauf das Negativ von gesetztcperl-indent-level
  • Passen Sie für den Perl-Modus in GNU Emacs 24.3 und höher perl-indent-parens-as-blockan true an.
  • Im Python-Modus ist dieses Verhalten in GNU-Emacs 24.3 und höher zu finden.

Sie können eine Variable durch Eingabe anpassen M-x customize-variable. Fügen Sie alternativ die folgenden Zeilen hinzu ~/.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)
Mavit
quelle
Gibt es eine Möglichkeit, dies mit Emacs 23.1.1 im Python-Modus zum Laufen zu bringen?
Ishmael
Die Lösung für Emacs 23.1.1 ist einfach den neuesten Python-mode.el bekommt hier . Entpacken Sie es in Ihrem ~ / .emacs.d-Verzeichnis und fügen Sie dann in Ihrer .emacs-Datei Folgendes hinzu:(add-to-list 'load-path (expand-file-name "~/.emacs.d/python-mode.el-6.1.3")) (require 'python-mode)
ishmael
Und wie mache ich das in C oder C ++ ?
Prof. Falken Vertrag verletzt
Gibt es eine Möglichkeit, den anderen Stil in python-modeEmacs> = 24.3 einzufügen?
mgalgs