Wie kann ein bestimmter schreibgeschützter Puffer beschreibbar gemacht werden?
On Dezember 1, 2020 by admin Der schreibgeschützte Status des aktuellen Puffers kann mit (read-only-mode)
oder Drücken von aber ich beabsichtige, einen Puffer, der nicht aktuell ist, beschreibbar zu machen. Das Folgende ist, was ich verwende
(with-current-buffer (get-buffer-create "*some*") (read-only-mode nil))
in der Hoffnung, dass es den schreibgeschützten Status entfernen würde, der auf den Puffer „* some *“ angewendet wird, aber es setzt nur den schreibgeschützten Status Status wieder in den Puffer. Das Aufrufen des Puffers und das Drücken von C-x C-q
funktioniert, aber das ist nicht meine Absicht, ich muss es remote tun.
Antwort
Verwenden Sie (read-only-mode -1)
, nicht (read-only-mode nil)
.
Siehe Dokumentzeichenfolge des Makros define-minor-mode
(C-h f define-minor-mode
) für weitere Informationen zum Argument für eine Minor-Mode-Funktion.
In der Dokumentzeichenfolge von read-only-mode
finden Sie einige gute Informationen zur Verwendung:
read-only-mode
ist eine interaktive kompilierte Lisp-Funktion insimple.el
Es ist an
C-x C-q
gebunden.
(read-only-mode &optional ARG)
Ändern Sie, ob der aktuelle Puffer schreibgeschützt ist.
Mit dem Präfixargument
ARG
wird der Puffer schreibgeschützt, wennARG
ist positiv, sonst macht es beschreibbar. Wenn der Puffer schreibgeschützt ist undview-read-only
nichtnil
ist, rufen Sie den Ansichtsmodus auf.Rufen Sie dies nicht auf von einem Lisp-Programm, es sei denn, Sie beabsichtigen wirklich, dasselbe wie den Befehl
C-x C-q
zu tun, einschließlich möglicherweise des Aktivierens oder Deaktivierens des Ansichtsmodus. Beachten Sie außerdem, dass dieser Befehl durch Festlegen der Variablenbuffer-read-only
funktioniert, die keine Auswirkungen auf schreibgeschützte Bereiche hat, die durch Texteigenschaften verursacht werden. Um den schreibgeschützten Status in einem Lisp-Programm (unabhängig von Texteigenschaften oder Pufferstatus) zu ignorieren, binden Sieinhibit-read-only
vorübergehend an eine Nicht-nil
Wert.
Schreibe einen Kommentar