23

置いたら

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

バッファ内で、最後の括弧の後にカーソルを置き、それをで評価するとC-x C-e、画像/tmp/test.pngがバッファに表示されます。

ここに画像の説明を入力してください

かなりきちんと。だが、

  1. 最後の括弧を別の行に配置する必要があったため、画像はバッファーの左側に近くなります。(insert-image ...)テキストを完全に非表示にする方法はありますか?
  2. テキストファイルには(insert-image ...)テキストのみが含まれ、画像は含まれません。私はそれに満足していますが、各(insert-image ...)式の後に入力しなくても、すべての式を対応する画像(ファイルを開いた後)に自動的に置き換えるようにemacsに指示する方法はありますC-x C-eか?
4

3 に答える 3

32

達成したい内容に応じて、次のアイデアのいずれかを試してみてください。

1.org-modeバッファのメジャーモードとして使用します。org-mode次に、画像ファイルへのリンクや表示など、フォーマットのすべての機能にアクセスできます。

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

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

次に、org-toggle-inline-imagesC-c C-x C-v)を呼び出して、バッファ内の画像を表示できます(プレフィックス引数なしでは、説明なしの画像のみが表示されます。プレフィックス引数を指定すると、すべての画像が表示されます)

2.独自のelispコードを記述して、必要な場所に画像を挿入しeval、ファイルを開くときに呼び出されるように、ローカルの疑似変数に配置します。例えば:

foo
<HERE>
bar

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

もちろん、elispコードをきちんとした関数にラップして、evalローカル変数から呼び出すこともできます(これはよりクリーンですが、ファイルから離れた別の場所に関数定義を持たせる必要があります)

于 2012-03-20T07:54:13.310 に答える
30

iimage-modeインライン画像マイナーモードをご覧ください。Emacs-23、IIRC以降に含まれています。

M-xiimage-mode

于 2012-03-20T08:21:15.663 に答える
1

バッファにテキスト(実際にはlispコード)を入れたくない場合は、そもそもそれをバッファに入力しないでください。M-x eval-expressionEvalプロンプトの後にlispコードを入力してみてください。

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

次に、画像がバッファ内のポイントに挿入されます。次のような関数を定義できます。

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

上記の機能を入力するかM-x eval-expression、バッファに入力してから入力C-x C-eします。次に、を使用して画像を挿入できますM-x my-insert-image

于 2012-03-20T01:54:16.850 に答える