wie leise "Save All Buffers" in den Emacs?
Wie erstelle ich einen Befehl "automatisch Speichern Alle Puffer" in Aquamacs Emacs?
Fand ich den Befehl save-some-buffers
das ist schön, aber das problem ist, dass es fordert mich, separat, um zu bestätigen, alle Puffer, die ich speichern möchten.
Durch Googeln fand ich einige Unterlagen, die auf eine variable namens save-silently-p
aber das scheint nicht zu existieren (in Aquamacs version 2.4, d.h. Emacs 23.3.50.1).
So, wie bekomme ich es auf alle Puffer speichern im hintergrund und ohne Aufforderung?
- Alles, was Sie brauchen, ist
C-u C-x s
- oder
C-x s !
(die ist klar, einfach aus der Betrachtung derC-h
Hilfetext für die Eingabe-Optionen). - sehr wahr, wirklich keine Ahnung, warum die akzeptierte Antwort benötigt so kompliziert zu sein.
C-x s
und dann!
ist nicht "silent" und erfordert die Reaktion auf eine Eingabeaufforderung (sorry pedantisch.) -C-u
ist nützlich zu wissen, denn es kann zusätzliche Funktionen bereitstellen, die auf eine Menge Dinge. VersuchenC-u
undM-x align-regexp
zum Beispiel. - Slomojo: Sie haben Recht, natürlich, aber Sie schien darauf hinzuweisen, wie auch immer, es ist die gleiche Anzahl von Tastenanschlägen, und alle anderen interaktiven Optionen verfügbar bleiben.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In diesem Beispiel, die ersten argument ist ein
non-nil
Wert -- "[o]ptional argument (das Präfix)non-nil
heißt retten, mit keine Fragen." Obwohl es könnte auch einfach nur altt
, habe ich mich entschieden, ein sinnvoller symbol mich daran zu erinnern, wofür Sie steht, D. H.,'no-confirm
. Wenn ich wollte, um zu erhalten ein Bestätigungs-Dialogfeld, dann würde ich stattdessen verwendennil
für die ersten argument. Sehen Sie die doc-string --M-x describe-function RET save-some-buffers RET
-- für weitere Informationen, wie Sie diese Funktion verhält sich, je nachdem, ob die ersten argument istnil
odernon-nil
.Beispiel unten verwendet
save-some-buffers
mit einem benutzerdefinierten null-argument-Funktion für die zweiten argument -- ich.e, PRED -- zu entscheiden, welche Puffer gespeichert werden sollen. Die doc-string fürsave-some-buffers
besagt, dass die zweiten argument -- also, PRED -- kann eine von drei Möglichkeiten -- (1) Wenn PRED istnil
alle Datei-Besuch Puffer berücksichtigt; (2) Wenn PRED istt
, dann bestimmte nicht-Datei-Puffer wird auch betrachtet werden; oder (3) Wenn PRED ist ein null-argument-Funktion, es gibt für jeden Puffer zu prüfen, ob es oder nicht wenn man es mit sich, dass Puffer aktuelle.Beispiel verwendet die Tastenkombination
f5
, aber der Benutzer frei, rufen Sie diese benutzerdefinierte Funktion interaktiv --M-x my-save-some-buffers
-- zuweisen oder einen anderen Tastaturbefehl ganz. Es gibt ein paar mögliche Spiele wurden hart codiert, und der Benutzer ist frei, um hinzufügen/entfernen/ändern Sie die Bedingungen:• - Datei-Besuch-Puffer + der name der Datei entspricht dem Wert der Variablen
abbrev-file-name
.• Datei-Besuch-Puffer + den major-Modus ist
latex-mode
von der eingebautentex-mode.el
-- nicht AUCTeX.• Datei-Besuch-Puffer + den major-Modus ist
markdown-mode
.• Datei-Besuch-Puffer + den major-Modus ist
emacs-lisp-mode
.• Datei-Besuch-Puffer + der abgeleiteten-Modus ist
org-mode
.Gibt es keine Notwendigkeit, um alle benutzerdefinierten Variablen, die Sie einfach:
Oder in langen-hand:
Strg+u Strg+x s
Darüber hinaus können Sie nur tun,
C-x s
und drücken Sie!
auf die Eingabeaufforderung mit ja beantworten, für alle speicherbare Datei-Puffer. Die ist nicht unbedingt leise, aber es ist immer noch sehr schnell/dezent. (credit: @phils)save-all
zuM-p
.C-x s
gebunden istsave-some-buffers
,C-u
sieht es mit dert
als pro Brian ' sdefun
. Ich denke, es ist gut, toll, dass Sie hinzufügen möchten, der zu Ihrem.emacs
. Es lohnt sich zu erinnern, diese Methode, wenn Sie jemals verwenden Sie ein Emacs-Website, die nicht Ihnen.Wenn du an nicht-null-auf
save-some-buffers
es werden alle Dateien speichern, ohne Rückfrage, so können Sie etwas tun, wieAus der info-Seite des
save-some-buffers
:Daher sollten Sie die variable
buffer-save-without-query
zut
(zum Beispiel) für alle Ihre Dateien.(add-hook 'find-file-hook (lambda () (setq buffer-save-without-query t)))
sollte den trick tun.(setq-default buffer-save-without-query t)
zu meinem.emacs
- Datei und führen Sie dann den Befehlsave-some-buffers
es noch immer fordert mich auf, mit:File to save in: ~/
(obwohl alle meine Puffer wurden zuvor auf der Festplatte gespeichert)save-some-buffers
oder sogarsave-buffers-kill-terminal
, es fordert mich auf, mit:File to save in: ~/
setq
in einen entsprechenden Haken.(add-hook 'org-mode-hook '(lambda () (setq-default buffer-save-without-query t)))
zu meinem.emacs
- Datei und ich bekomme immer noch das gleiche Verhalten.setq-default
dies ist, was das problem verursacht.