copy-paste – Copiar texto tal como lo representa Emacs

Pregunta:

Tengo a Emacs haciendo un montón de cosas inteligentes para mostrarme texto. En particular, algún texto tiene la propiedad invisible establecida, y estoy ejecutando adaptive-wrap con <!-- adaptive-wrap-extra-indent: 3 --> set. Me pregunto si puedo copiar el texto tal como se representa en Emacs, con nuevas líneas para recrear el ajuste de línea inteligente y sin el texto invisible. ¿Hay alguna manera de que pueda acceder al texto de mi búfer en esa forma?

Lo que quiero es esencialmente lo mismo que ejecutar emacs -nw , seleccionar el texto usando las capacidades de selección de texto de la terminal y luego usar la función de copia de la aplicación de la terminal ( sin marcar usando una región de Emacs y luego tirar). El principal problema con esta técnica para mí es que tengo que hacerlo una pantalla a la vez.

Ejecutar htmlfontify-buffer me lleva a parte del camino. Mi texto visible se muestra mediante. Puedo hacer que desaparezca haciendo clic en cada instancia individual, pero se pierde el comportamiento de ajuste de línea.

Respuesta:

La biblioteca subr+.el tiene funciones que ayudan con esto. Éste, por ejemplo:

(defun buffer-substring-of-visible (start end)
  "Return contents of visible part of buffer from START to END, as a string.
START and END can be in either order."
  (buffer-substring-of-unpropertied start end 'invisible))

Aquí hay algunos otros, que son similares:

  • buffer-substring-of-invisible – Devuelve el contenido de la parte invisible del búfer de START a END, como una cadena.

  • buffer-substring-of-faced : permite cambiar el contenido del búfer desde el INICIO hasta el FIN, como una cadena. Es decir, incluya solo texto que tenga la propiedad "face".

  • buffer-substring-of-unfaced – Devuelve el contenido sin rostro del búfer de START a END, como una cadena. Es decir, incluya solo texto que no tenga la propiedad "face".

Y las funciones más generales:

  • buffer-substring-of-propertied – Devuelve el contenido PROPIEDAD del búfer desde el INICIO hasta el FIN, como una cadena. Solo se incluye el texto de INICIO a FIN que tiene PROPIEDAD.

  • buffer-substring-of-unpropertied – Devuelve el contenido sin propiedad del búfer de START a END, como una cadena. El texto de INICIO a FIN que tiene PROPIEDAD se excluye de la cadena.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım