在TextMate中,可以使用ctrl-shift-w将文本包装在Open/Close标记中,使用ctrl-shift-cmd -w将每行包装在Open/Close标记的区域中.如何使用emacs lisp在Emacs中实现相同的功能?
emacs becomesemacs
而......
emacs textmate vi becomes
Trey Jackson.. 7
这个答案为您提供了包裹区域的解决方案(一旦您修改它以使用尖括号).
此例程将提示您使用该标记,并应使用该类型的打开/关闭标记标记该区域中的每一行:
(defun my-tag-lines (b e tag) "'tag' every line in the region with a tag" (interactive "r\nMTag for line: ") (save-restriction (narrow-to-region b e) (save-excursion (goto-char (point-min)) (while (< (point) (point-max)) (beginning-of-line) (insert (format "<%s>" tag)) (end-of-line) (insert (format "%s>" tag)) (forward-line 1)))))
*注意:*如果您希望tag
始终如此li
,则删除tag参数,\nMTag for line:
从对Interactive的调用中删除文本,并更新插入调用以仅"
按预期插入.
这个答案为您提供了包裹区域的解决方案(一旦您修改它以使用尖括号).
此例程将提示您使用该标记,并应使用该类型的打开/关闭标记标记该区域中的每一行:
(defun my-tag-lines (b e tag) "'tag' every line in the region with a tag" (interactive "r\nMTag for line: ") (save-restriction (narrow-to-region b e) (save-excursion (goto-char (point-min)) (while (< (point) (point-max)) (beginning-of-line) (insert (format "<%s>" tag)) (end-of-line) (insert (format "%s>" tag)) (forward-line 1)))))
*注意:*如果您希望tag
始终如此li
,则删除tag参数,\nMTag for line:
从对Interactive的调用中删除文本,并更新插入调用以仅"
按预期插入.
对于sgml-mode
deratives,标记区域以标记,键入M-x sgml-tag
和键入您要使用的标记名称(按下TAB
以获取可用HTML元素的列表).尽管如此,此方法不允许您标记区域中的每一行,您可以通过录制键盘宏来解决此问题.