मैं एक एमएसीएस कमांड कैसे लिख सकता हूं जो वर्तमान कर्सर स्थिति में एक चर स्ट्रिंग के साथ एक पाठ सम्मिलित करता है?


12

मैं एक क्विक इमैक कमांड लिखना चाहता हूं जो एक निश्चित स्ट्रिंग को सम्मिलित करता है जिसमें वर्तमान कर्सर स्थिति में एक चर हिस्सा होता है:

\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

यदि आप बहुत से समान निर्माणों का उपयोग करना चाहते हैं, तो उन्हें यास्निपेट के रूप में लिखना आसान हो सकता है। YASnippet के साथ आप आसानी से ऊपर के समान व्यवहार के साथ एक स्निपेट बना सकते हैं। उदाहरण के लिए आप निम्नलिखित का उपयोग कर सकते हैं (यदि आपने "कीबाइंडिंग" को एक उचित कीबाइंडिंग से बदल दिया है, यदि आप एक कीबाइंडिंग चाहते हैं):

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

इसके साथ आप फू लिखते हैं और Tabबाद में इसे बढ़ाने \label{$1} \index{\nameref{$1}}और क्वेरी करने के लिए सीधे दबाएँ $1

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.