Set Texteigenschaften
-
21-09-2019 - |
Frage
Ich möchte einen Text von einem Puffer zum anderen mit Texteigenschaften kopieren. Also ich habe
(with-current-buffer from-buffer
(setq text-to-copy (buffer-substring beg end)))
Wie kann ich die Text-to-Kopie an einem anderen Puffer mit allen Texteigenschaften einfügen? Ich interessiere mich vor allem in ‚Gesicht‘ Eigenschaften.
Die Funktion zwischenString kehrt eine Liste, zum Beispiel ("substring" 42 51 (face font-lock-keyword-face) 52 59 (face font-lock-function-name-face))
Wenn ich diese Liste übergeben es an (insert text-to-copy)
scheint, dass es Texteigenschaften
Lösung
Wenn font-lock-mode
auf im Zielpuffer des Einsetzens gedreht wird, wird das Gesicht Eigenschaft zurückgesetzt werden, sobald die fontification Kicks in. Ich glaube, Sie zu jeder Abzweigung font-lock-mode
benötigen oder munge die Texteigenschaften zu ersetzen ‚Gesicht‘ mit 'font-lock-face' vor dem Einsetzen.
Andere Tipps
Die 'insert
' Funktion sollte Strings verarbeiten, die Text-Eigenschaften umfassen, wie sie ist. Da buffer-substring
wird standardmäßig eine Zeichenfolge mit dem Text-Eigenschaften zurück, wenn vorhanden, ‚(insert text-to-copy)
‘ alles, was Sie tun müssen, sein sollte.
Wenn auf der anderen Seite wollen Sie die Zeichenfolge extrahieren, ohne die Texteigenschaften, würden Sie wollen buffer-substring-no-properties
stattdessen werden mit
sollte, die funktionieren. Dies ist von Emacs 23.1.1:
buffer-substring is a built-in function in `C source code'.
(buffer-substring start end)
Return the contents of part of the current buffer as a string.
The two arguments start and end are character positions;
they can be in either order.
The string returned is multibyte if the buffer is multibyte.
This function copies the text properties of that part of the buffer
into the result string; if you don't want the text properties,
use `buffer-substring-no-properties' instead.
Sie können den Befehl describe-text-properties
interaktiv verwenden, um zu sehen, was es ist, dass Sie tatsächlich bekommen:
describe-text-properties is an interactive compiled Lisp function in
`descr-text.el'.
It is bound to <C-down-mouse-2> <dp>, <menu-bar> <edit> <props> <dp>.
(describe-text-properties pos &optional output-buffer)
Describe widgets, buttons, overlays and text properties at pos.
Interactively, describe them for the character after point.
If optional second argument output-buffer is non-nil,
insert the output into that buffer, and don't initialize or clear it
otherwise.