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?


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)

¿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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.