2012-04-19 13 views
6

Después de un buen montón de experimentación, creo que me gusta:En emacs, ¿puedo tener un conjunto de configuraciones de ajuste de línea para el código y una para el texto?

(setq truncate-lines nil) 
(setq word-wrap t) 

para la edición de texto, pero

(setq truncate-lines t) 
(setq word-wrap nil) 

para la programación.

En todos los modos, me gusta:

(setq fill-column 80) 

de modo que pueda utilizar M-q y C-u M-q al flujo de texto a 80 columnas, pero también me parece que me gusta auto-fill modo y nunca me gustaría que fuera de .

Tampoco estoy interesado en que visual-line-mode (o, al menos, el bit de la misma que no es word-wrap)

¿Hay algún encantamiento que puedo poner en mi archivo .emacs que me hará feliz?

Defino feliz de ser: "todo solo hace lo que quiero y nunca más volveré a pensar en esto".

Respuesta

7

Uso prog-mode-hook y text-mode-hook para establecer estas variables:

(add-hook 'text-mode-hook '(lambda() 
    (setq truncate-lines nil 
      word-wrap t))) 

y

(add-hook 'prog-mode-hook '(lambda() 
    (setq truncate-lines t 
      word-wrap nil))) 
+3

no olvidar, todos los modos de programación en realidad no han sido derivadas de prog -modo. la primera pieza en la respuesta puede no funcionar para algunos modos de programación – kindahero

+0

¡Esta sería una respuesta perfecta si funciona! He agregado esas líneas a mi archivo .emacs, pero parece que tengo el modo de edición predeterminado para todos los archivos. –

+1

@JohnLawrenceAspden dependiendo de su versión de Emacs, 'prog-mode-hook' podría no estar definido (por ejemplo, no lo tengo en Emacs 23.3.1; puede verificar si obtiene alguna documentación usando' Ch v prog- modo-hook'). Si este es el caso, deberá agregar ganchos para todos los modos de programación que utilice (o actualice a Emacs 24). – Francesco

2

Lo siento por no dar el código fuente en mi respuesta, pero te que la configuración que tiene en puedo asegurar la mente es de hecho posible. Solo depende de su definición de "modos de programación". La mayoría de los modos vienen con una función llamada gancho (ver http://www.gnu.org/software/emacs/manual/html_node/emacs/Hooks.html). Estas son básicamente funciones que se ejecutan cuando se carga un modo. Tal gancho entonces ajustaría la configuración que tiene en mente.

1

(setq truncate-lines t) aún no funciona?

El culpable podría ser otro modo. Line-modo visual era mío (visual-line mundial-mode), así que tuve que poner la función de bloqueo en el gancho:

(add-hook 'neotree-mode-hook 
     (lambda() 
     (visual-line-mode -1) 
     (setq truncate-lines t))) 
Cuestiones relacionadas