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,
- 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? - 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 escribirCx 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
.