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)
Take a look at iimage-mode
, the inline image minor mode. It's included since Emacs-23, IIRC.
M-xiimage-mode
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With