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

ignoriert
War es hilfreich?

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.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top