現在のカーソル位置に可変部分を含む固定文字列を挿入するelispemacsコマンドを書きたいと思います。
\label{$STRING} \index{\nameref{$STRING}}
コマンドは$STRING
を照会し、テキスト全体を挿入する必要があります。
これはそのための簡単なelisp関数です:
(defun labelnameref (string)
"Insert \label{ARG} \index{\nameref{ARG}} at point"
(interactive "sString for \\label and \\nameref: ")
(insert "\\label{" string "} \\index{\\nameref{" string "}}"))
この関数は、ミニバッファーで文字列を照会し、それをすべてポイントに挿入します。それを使用するには、それを.emacsに入れて、を介して呼び出すことができます M-xlabelnameref
またはそれをキーにバインドします。
同様の構成を多数使用する場合は、それらをyasnippetとして記述する方が簡単な場合があります。 YASnippet を使用すると、上記と同様の動作のスニペットを簡単に作成できます。たとえば、次を使用できます(キーバインドが必要な場合は、「キーバインド」を適切なキーバインドに置き換えます)。
# -*- mode: snippet -*-
# name: foo
# key: foo
# binding: "keybinding"
# --
\label{$1} \index{\nameref{$1}}
これであなたはfooを書いて押す Tab その後すぐにそれを\label{$1} \index{\nameref{$1}}
に展開し、$1
を照会します。