現在のカーソル位置に変数文字列を含むテキストを挿入するemacsコマンドを作成するにはどうすればよいですか?


12

現在のカーソル位置に可変部分を含む固定文字列を挿入するelisp emacsコマンドを記述したいと思います。

\label{$STRING} \index{\nameref{$STRING}}

コマンドが$STRINGテキスト全体を照会して挿入する場所。

回答:


12

エリスプ

簡単な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-x labelnamerefか、キーにバインドします。

YASnippet

似たような構造をたくさん使いたい場合は、yasnippetsとして書く方が簡単かもしれません。ではYASnippet簡単に上記と同様の動作とスニペットを作成することができます。たとえば、以下を使用できます(「キーバインディング」をキーバインディングが必要な場合は、適切なキーバインディングに置き換えます)。

# -*- mode: snippet -*-
# name: foo
# key: foo
# binding: "keybinding"
# --
\label{$1} \index{\nameref{$1}}

これを使用してfooを記述し、Tab直後に押して展開して\label{$1} \index{\nameref{$1}}を照会し$1ます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.