If I place
(insert-image (create-image "/tmp/test.png"))
in a buffer, place the cursor after the last parenthesis and evaluate it with C-x C-e
, then the image /tmp/test.png
is displayed in the buffer:
Pretty neat. But,
(insert-image ...)
text altogether?(insert-image ...)
text only, not the
image. I'm happy with that, but is there a way to tell emacs to
automatically replace all the (insert-image ...)
expressions by
their corresponding images (after the file is opened) without me having to type C-x C-e
after
each one?Depending on exactly what you want to achieve, you might try one the the following ideas:
1. use org-mode
as your buffer's major mode. You then have access to all the power of org-mode
formatting, which includes linking to image files and displaying them:
an image without description
[[file:/tmp/image.png]]
an image with description
[[file:/tmp/image.png][my description]]
then you can call org-toggle-inline-images
(C-c C-x C-v) to display images in the buffer (without a prefix argument, it will display only images without description; if you give a prefix argument, it will display all images)
2. write your own elisp code to insert images where you want them, and put it in an eval
local pseudo-variable so that it is called when opening the file. For example:
foo
<HERE>
bar
# Local Variables:
# eval: (progn (beginning-of-buffer)(search-forward "<HERE>")(insert-image (create-image "/tmp/image.png")))
# End:
You can of course wrap the elisp code into a neat function and simply call it from the eval
local variable (which is cleaner, but forces you to have the function definition somewhere else, away from your file)