emacs insert-image

emacs - insertar imagen en el buffer de texto



insert-image (3)

Dependiendo de exactamente lo que quiere lograr, puede probar una de las siguientes ideas:

1. usa org-mode como el modo principal de tu búfer. A continuación, tendrá acceso a toda la potencia del formateo en org-mode , que incluye la vinculación a archivos de imagen y su visualización:

an image without description [[file:/tmp/image.png]] an image with description [[file:/tmp/image.png][my description]]

luego puede llamar a org-toggle-inline-images ( Cc Cx Cv ) para mostrar imágenes en el búfer (sin un argumento de prefijo, mostrará solo imágenes sin descripción; si da un argumento de prefijo, mostrará todas las imágenes)

2. escriba su propio código electrónico para insertar las imágenes donde las desee y colóquelo en una pseudo-variable local eval para que se llame al abrir el archivo. Por ejemplo:

foo <HERE> bar # Local Variables: # eval: (progn (beginning-of-buffer)(search-forward "<HERE>")(insert-image (create-image "/tmp/image.png"))) # End:

Por supuesto, puede ajustar el código elisp en una función ordenada y simplemente invocarlo desde la variable local eval (que es más limpia, pero lo obliga a tener la definición de la función en otro lugar, lejos de su archivo)

Si coloco

(insert-image (create-image "/tmp/test.png"))

en un búfer, coloque el cursor después del último paréntesis y /tmp/test.png con Cx Ce , luego la imagen /tmp/test.png se muestra en el búfer:

Con buena pinta. Pero,

  1. Tuve que poner el paréntesis final en una línea separada, por lo que la imagen está cerca del lado izquierdo del búfer. ¿Hay alguna forma de ocultar el texto (insert-image ...) completo?
  2. El archivo de texto contiene solo el texto (insert-image ...) , no la imagen. Estoy contento con eso, pero hay una manera de decirle a emacs que reemplace automáticamente todas las expresiones (insert-image ...) por sus imágenes correspondientes (después de abrir el archivo) sin que tenga que escribir Cx Ce después de cada una ?

Eche un vistazo al iimage-mode , el modo menor de imagen en línea. Se incluye desde Emacs-23, IIRC.

Mx iimage-mode


Si no desea que el texto (en realidad el código lisp) en el búfer, no lo escriba en el búfer en primer lugar. Pruebe Mx eval-expression e ingrese su código lisp después del aviso de Eval:

(insert-image (create-image "/tmp/test.png"))

A continuación, la imagen se inserta en el punto en el búfer. Puedes definir una función como esta:

(defun my-insert-image () (interactive) (insert-image (create-image "/tmp/test.png")))

Escriba Mx eval-expression y la definición anterior o escríbalo en un búfer y Cx Ce después de él. Luego puedes insertar la imagen usando Mx my-insert-image .