Saya ingin menulis perintah emisp elisp yang memasukkan string tetap yang berisi bagian variabel pada posisi kursor saat ini:
\label{$STRING} \index{\nameref{$STRING}}
di mana perintah harus meminta $STRING
dan menyisipkan seluruh teks.
Ini adalah fungsi elisp sederhana untuknya:
(defun labelnameref (string)
"Insert \label{ARG} \index{\nameref{ARG}} at point"
(interactive "sString for \\label and \\nameref: ")
(insert "\\label{" string "} \\index{\\nameref{" string "}}"))
Fungsi ini meminta dalam minibuffer untuk string dan kemudian memasukkan semuanya pada titik. Untuk menggunakannya, Anda bisa meletakkannya di .emacs Anda dan memintanya melalui M-x labelnameref
atau mengikatnya ke kunci.
Jika Anda ingin menggunakan banyak konstruksi yang serupa, mungkin lebih mudah untuk menuliskannya sebagai yasnippets. Dengan YASnippet Anda dapat dengan mudah membuat snippet dengan perilaku serupa seperti di atas. Misalnya Anda dapat menggunakan yang berikut (Anda telah mengganti "keybinding" dengan keybinding yang tepat jika Anda menginginkan keybinding untuk itu):
# -*- mode: snippet -*-
# name: foo
# key: foo
# binding: "keybinding"
# --
\label{$1} \index{\nameref{$1}}
Dengan ini Anda menulis foo dan tekan Tablangsung setelahnya untuk memperluasnya \label{$1} \index{\nameref{$1}}
dan meminta $1
.