代码之家  ›  专栏  ›  技术社区  ›  singingfish

如何在emacs中标记文本

  •  3
  • singingfish  · 技术社区  · 17 年前

    Lorem ipsem por favor
    

    我需要这样注释它:

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

    因此,我要做的是选择一个区域,然后运行一个函数或宏,它将提示输入标记名,并在区域的开始和结束处将大括号、结束/结束符和标记名插入缓冲区。

    2 回复  |  直到 17 年前
        1
  •  11
  •   Trey Jackson    17 年前

    嗯,有很多方法。 yasnippet 是一个,我相信很多不同的xml/html模式都有一个。

    为简单起见,您可以使用一些elisp,如:

    (defun my-tag-region (b e tag)
      "'tag' a region"
      (interactive "r\nMTag for region: ")
      (save-excursion
        (goto-char e)
        (insert (format "{/%s}" tag))
        (goto-char b)
        (insert (format "{%s}" tag))))
    
        2
  •  4
  •   offby1    17 年前

    (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))))