En emacs, ¿cómo alineo los paréntesis de cierre con el inicio de la línea de apertura?

11

El estilo de sangría predeterminado para las llamadas a funciones de varias líneas en muchos modos de emacs es alinear el corchete de cierre con los otros argumentos de la función, por lo tanto:

function_one(
    arg1,
    arg2
    );

Preferiría que el corchete de cierre se alineara con el inicio de la línea que contiene el corchete de apertura. Por ejemplo:

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

¿Cómo hago esto?

mavit
fuente
1
¡He estado ignorando el mismo impulso durante años ! Hoy es el día para arreglarlo.
contrato del Prof. Falken incumplió el

Respuestas:

12
  • Para los muchos modos derivados del modo CC (por ejemplo, modo c, modo java, modo php), personalice c-offsets-alistpara que arglist-closeesté configurado en c-lineup-close-paren.
  • Para el modo cperl, personalícelo cperl-indent-parens-as-blocken verdadero.
  • Para el modo cperl, GNU Emacs 24.3+, establecido cperl-close-paren-offseten el negativo decperl-indent-level
  • Para el modo perl en GNU emacs 24.3 y superior, personalice perl-indent-parens-as-blocka verdadero.
  • Para el modo python, este comportamiento se encuentra en GNU emacs 24.3 y superior.

Puede personalizar una variable escribiendo M-x customize-variable. Alternativamente, agregue las siguientes líneas a su ~/.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
fuente
¿Hay alguna manera de hacer que esto funcione en modo python con Emacs 23.1.1?
ismael
La solución para Emacs 23.1.1 es simplemente obtener la última versión de python-mode.el aquí . Untarlo en su directorio ~ / .emacs.d, luego en su archivo .emacs, agregue esto:(add-to-list 'load-path (expand-file-name "~/.emacs.d/python-mode.el-6.1.3")) (require 'python-mode)
ishmael
¿Y cómo hago que esto funcione en C o C ++ ?
contrato del Prof. Falken incumplió el
¿Hay alguna forma de obtener el otro estilo en python-modeEmacs> = 24.3?
mgalgs