Geçerli imleç konumunda değişken dize içeren bir metin ekleyen bir emacs komutunu nasıl yazabilirim?


12

Geçerli imleç konumunda değişken bir parçası içeren sabit bir dize ekleyen bir elisp emacs komutu yazmak istiyorum:

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

burada komut $STRINGtüm metni sorgulamalı ve eklemelidir.

Yanıtlar:


12

elisp

İşte bunun için basit bir elisp işlevi:

(defun labelnameref (string)
  "Insert \label{ARG} \index{\nameref{ARG}} at point"
  (interactive "sString for \\label and \\nameref: ")
  (insert "\\label{" string "} \\index{\\nameref{" string "}}"))

Bu işlev, dizge için minibuffer'da sorgular ve sonra bunları noktaya ekler. Kullanmak için .emac'lerinize koyabilir ve sonra M-x labelnamerefonu bir tuşa çağırabilir veya bir anahtara bağlayabilirsiniz.

YASnippet

Çok sayıda benzer yapı kullanmak istiyorsanız bunları yasnippets olarak yazmak daha kolay olabilir. YASnippet ile kolayca yukarıdaki gibi bir davranışa sahip bir pasaj oluşturabilirsiniz. Örneğin aşağıdakileri kullanabilirsiniz (bunun için bir tuş takımı istiyorsanız, "tuş takımını" uygun bir tuş takımıyla değiştirebilirsiniz):

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

Bununla foo yazar ve Tabdaha sonra doğrudan genişletmek \label{$1} \index{\nameref{$1}}ve sorgulamak için basın $1.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.