Wenn es dir nichts ausmacht, wenn ich frage, was versuchst du dann zu tun?
Luke
@King Ich erstelle einen asynchronen Prozess und möchte den Inhalt des Puffers als Standardeingabe senden. Ich dachte, ich kann es gebrauchen process-send-stringund bin stecken geblieben.
Maciej Goszczycki
Antworten:
25
Viele Dinge in Emacs arbeiten mit dem aktuellen Puffer. Sie müssen den aktuellen Puffer ändern und wiederherstellen, wenn Sie fertig sind. Verwenden with-current-bufferSie diese Option für einfache Fälle, in denen Sie nur etwas in einem anderen Puffer tun müssen, und save-current-bufferfür komplexere Fälle, in denen Sie zwischen mehreren Puffern navigieren müssen.
buffer-stringgibt nur den verengten Teil des Puffers zurück. Wenn Sie den gesamten Inhalt benötigen, erweitern Sie ihn nach dem Speichern der Verengung.
Wenn Sie den Punkt auch speichern müssen, rufen Sie ebenfalls an save-excursion. Beachten Sie, dass save-excursionder Punkt nur im aktuellen Puffer wiederhergestellt wird. Wenn Sie also in einen anderen Puffer wechseln und sich dort bewegen müssen, rufen Sie aufsave-excursion in save-current-bufferoder auf with-current-buffer.
process-send-string
und bin stecken geblieben.Antworten:
Viele Dinge in Emacs arbeiten mit dem aktuellen Puffer. Sie müssen den aktuellen Puffer ändern und wiederherstellen, wenn Sie fertig sind. Verwenden
with-current-buffer
Sie diese Option für einfache Fälle, in denen Sie nur etwas in einem anderen Puffer tun müssen, undsave-current-buffer
für komplexere Fälle, in denen Sie zwischen mehreren Puffern navigieren müssen.Wenn Sie den Textinhalt des Puffers ohne Eigenschaften erhalten möchten, rufen Sie auf
buffer-substring-no-properties
.buffer-string
gibt nur den verengten Teil des Puffers zurück. Wenn Sie den gesamten Inhalt benötigen, erweitern Sie ihn nach dem Speichern der Verengung.Wenn Sie den Punkt auch speichern müssen, rufen Sie ebenfalls an
save-excursion
. Beachten Sie, dasssave-excursion
der Punkt nur im aktuellen Puffer wiederhergestellt wird. Wenn Sie also in einen anderen Puffer wechseln und sich dort bewegen müssen, rufen Sie aufsave-excursion
insave-current-buffer
oder aufwith-current-buffer
.quelle