2012-04-19 11 views
6

Nach einem recht viel experimentiert, denke ich, dass Ich mag:Kann ich in Emacs einen Zeilenumbruch für Code und einen für Text festlegen?

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

für die Textbearbeitung, aber

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

für die Programmierung.

In allen Modi Ich mag:

(setq fill-column 80) 

so dass ich M-q und C-u M-q können Sie Text zu 80 Spalten fließen, aber ich finde auch, dass ich auto-fill Modus nicht mögen und würde es nie sein wollen .

Ich bin auch, dass nicht so scharf auf visual-line-mode

Gibt es eine Beschwörung (oder zumindest das Stück davon, die nicht word-wrap ist) ich in meiner .emacs Datei setzen kann, die mich glücklich machen?

Ich definiere glücklich zu sein: "es macht alles, was ich will und ich muss nie wieder darüber nachdenken".

Antwort

7

Verwenden prog-mode-hook und text-mode-hook diese Variablen zu setzen:

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

und

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

nicht zu vergessen, alle Programmiermodi nicht wirklich von prog abgeleitet -Modus. das erste Stück in der Antwort funktioniert möglicherweise nicht für einige Programmiermodi – kindahero

+0

Dies wäre eine perfekte Antwort, wenn es funktioniert! Ich habe diese Zeilen zu meiner .emacs-Datei hinzugefügt, aber ich scheine nur den Standard-Bearbeitungsmodus für alle Dateien zu erhalten. –

+1

@JohnLawrenceAspden Abhängig von Ihrer Emacs-Version ist 'prog-mode-hook' möglicherweise nicht definiert (zum Beispiel habe ich es nicht auf Emacs 23.3.1; Sie können prüfen, ob Sie Dokumentation mit' Ch v prog- Modus-Haken'). Wenn dies der Fall ist, müssen Sie Hooks für alle von Ihnen verwendeten Programmiermodi hinzufügen (oder auf Emacs 24 aktualisieren). – Francesco

2

Sorry für die nicht-Quellcode in meiner Antwort zu geben, aber ich kann Ihnen versichern, dass das Setup Sie haben in Geist ist möglich. Es hängt nur von Ihrer Definition von "Programmiermodi" ab. Die meisten Modi haben eine sogenannte Hook-Funktion (siehe http://www.gnu.org/software/emacs/manual/html_node/emacs/Hooks.html). Dies sind im Grunde Funktionen, die ausgeführt werden, wenn ein Modus geladen wird. Ein solcher Haken würde dann die Einstellungen anpassen, die Sie im Sinn haben.

1

(setq truncate-Linien t) immer noch nicht funktioniert?

Schuldige könnte ein anderer Modus sein. Visuelle-line-Modus war Mine (global Vision-line-Modus), so hatte ich die Sperrfunktion in den Haken zu setzen:

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