2009-09-09 63 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))))