2009-09-09 64 views
3

我正在emacs中開發一個文本註釋系統,其中註釋的格式是這樣的。如果是這樣的文字:如何在emacs中標記文本

Lorem ipsem por favor 

我需要註釋這樣的:

{latin}Lorem imsem{/latin} {spanish}por favor{/spanish} 

所以我想要做的就是選擇一個區域,然後運行一個函數或將提示宏標籤名稱,並將大括號,關閉/和標籤名稱插入區域開始和結束處的緩衝區中。

這可能是非常簡單的,但是我總是發現emacs lisp比較容易混淆,因爲我根本沒有經常使用它。

回答

11

好吧,有很多方法。 yasnippet就是其中之一,而且我確定一堆各種xml/html模式都有。

爲了簡單起見,你可以使用一些類似的elisp:

​​
+1

輝煌,謝謝!爲了讓遊標在最後的正確位置,在保存偏移函數之後,我們可以執行(search-forward「}」) – singingfish 2009-09-09 01:29:06

4

如果你想點爲收盤後}當你做,我覺得這是更強大的比搜索:

(defun my-tag-region (b e tag) 
    "'tag' a region" 
    (interactive "r\nMTag for region: ") 
    (let ((e (copy-marker e))) 
    (goto-char b) 
    (insert (format "{%s}" tag)) 
    (goto-char e) 
    (insert (format "{/%s}" tag))))