wie "Alle Puffer" in Emacs still zu speichern?

9

Wie erstelle ich einen Befehl zum "Alle Puffer in Ruhe speichern" in Aquamacs Emacs?

Ich habe den Befehl save-some-buffers gefunden, was nett ist, aber das Problem ist, dass es mich einzeln dazu auffordert, jeden Puffer zu bestätigen, den ich speichern möchte.

Beim Googling habe ich eine Dokumentation über eine Variable namens save-silently-p gefunden, die aber anscheinend nicht existiert (in Aquamacs Version 2.4, d. h. Emacs 23.3.50.1).

Wie kann ich also alle Puffer ohne Aufforderung automatisch speichern?

    
incandescentman 06.03.2013, 17:49
quelle

4 Antworten

2

In diesem Beispiel wird das erste Argument auf einen non-nil Wert gesetzt - " [o] ptional Argument (das Präfix) non-nil bedeutet, dass alle ohne Fragen gespeichert werden. "Obwohl es einfach nur alt t sein könnte, habe ich mich entschieden, ein aussagekräftigeres Symbol zu erstellen, um mich daran zu erinnern, wofür es steht - also 'no-confirm . Wenn ich einen Bestätigungsdialog erhalten möchte, verwende ich stattdessen nil für das erste Argument. Weitere Informationen dazu, wie sich diese Funktion verhält, abhängig davon, ob das erste Argument M-x describe-function RET save-some-buffers RET oder nil ist, finden Sie in der doc-Zeichenfolge - non-nil .

Im folgenden Beispiel wird save-some-buffers mit einer benutzerdefinierten Zero-Argumentfunktion für das zweite Argument verwendet, dh PRED welche Puffer sollten gespeichert werden. Der Doc-String für save-some-buffers gibt an, dass das zweite Argument - also PRED - eine von drei Möglichkeiten sein kann - (1) Wenn PRED nil ist, werden alle Datei-besuchenden Puffer berücksichtigt. (2) Wenn PRED t ist, werden auch bestimmte Nicht-Datei-Puffer berücksichtigt. oder (3) Wenn PRED eine Nullargumentfunktion ist, gibt es für jeden Puffer an, ob es berücksichtigt werden soll oder nicht, wenn mit diesem Pufferstrom aufgerufen wird.

Das Beispiel verwendet eine Tastenkombination von f5 , aber der Benutzer kann diese benutzerdefinierte Funktion interaktiv aufrufen - M-x my-save-some-buffers - oder eine andere Tastenkombination vollständig zuweisen. Es gibt ein paar mögliche Übereinstimmungen, die fest codiert wurden, und der Benutzer kann die Bedingungen hinzufügen / entfernen / ändern:

• Datei-Besuchspuffer + Der Dateiname stimmt mit dem Wert der Variablen abbrev-file-name überein.

• Datei-Besuchspuffer + Der Hauptmodus ist latex-mode von der integrierten tex-mode.el - nicht AUCTeX.

• Datei-Besuchspuffer + Der Hauptmodus ist markdown-mode .

• Datei-Besuchspuffer + Der Hauptmodus ist emacs-lisp-mode .

• Datei-Besuchspuffer + Der abgeleitete Modus ist org-mode .

%Vor%     
lawlist 26.05.2015, 20:25
quelle
12

Sie müssen keine benutzerdefinierten Variablen festlegen, sondern einfach:

%Vor%

Oder in langhand:

Strg + u Strg + x s

Zusätzlich können Sie einfach C-x s eingeben und ! bei der Eingabeaufforderung drücken, um alle speicherbaren Dateipuffer mit yes zu bestätigen. Das ist nicht streng still, aber es ist immer noch sehr schnell / unaufdringlich. (Kredit: @phils)

    
ocodo 26.07.2013 00:44
quelle
8

Wenn Sie non-nil übergeben, um einige Puffer zu speichern, werden alle Dateien ohne Aufforderung gespeichert. Sie können also etwas wie

tun %Vor%     
bburns.km 22.11.2013 05:43
quelle
2

Von der Info-Seite von save-some-buffers :

  

(speichere einige Puffer und optional ARG PRED)

     

Speichern Sie einige modifizierte Datei-Besuchspuffer. Fragt den Benutzer nach jedem.   Sie können y' to save, n 'nicht speichern, C-r' to look at the buffer in question with view-buffer' vor der Entscheidung oder d' to view the differences using diff-buffer-with-file 'beantworten.

     

Dieser Befehl speichert zuerst alle Puffer, in denen 'buffer-save-with-query' gespeichert ist   ist nicht nil, ohne zu fragen.

Sie sollten daher für alle Ihre Dateien die Variable buffer-save-without-query auf t (zum Beispiel) setzen. (add-hook 'find-file-hook (lambda () (setq buffer-save-without-query t))) sollte den Trick machen.

    
Nicolas Dudebout 06.03.2013 18:29
quelle

Tags und Links