현재 커서 위치에 변수 부분이 포함 된 고정 문자열을 삽입하는 elisp emacs 명령을 작성하고 싶습니다.
\label{$STRING} \index{\nameref{$STRING}}
명령이 $STRING
전체 텍스트를 쿼리 하고 삽입 해야하는 위치
답변
Elisp
간단한 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
키를 통해 호출 하거나 바인딩 할 수 있습니다.
야스 니펫
유사한 구성을 많이 사용하려면 그것들을 yasnippets로 작성하는 것이 더 쉬울 수 있습니다. YASnippet 을 사용하면 위와 유사한 동작을 가진 스 니펫을 쉽게 만들 수 있습니다. 예를 들어 다음을 사용할 수 있습니다 (키 바인딩을 원할 경우 “키 바인딩”을 적절한 키 바인딩으로 대체 함).
# -*- mode: snippet -*-
# name: foo
# key: foo
# binding: "keybinding"
# --
\label{$1} \index{\nameref{$1}}
이것으로 당신은 foo를 쓰고 Tab나중에 직접 눌러 확장 \label{$1} \index{\nameref{$1}}
하고 쿼리합니다 $1
.