emacs - 像TextMate一样在打开/关闭标签中包装选择?

标签 emacs elisp

TextMate , 可以使用 ctrl-shift-w将文本包装在打开/关闭标签中,并 ctrl-shift-cmd-w 将每一行包装在打开/关闭标签中的区域中。如何使用 emacs lisp 在 Emacs 中实现相同的功能?

电子书

变成

emacs



和 ...

电子书
文友


变成
  • emacs
  • 文友
  • vi
  • 最佳答案

    This answer为您提供了一个环绕区域的解决方案(一旦您修改它以使用尖括号)。

    此例程将提示您输入要使用的标签,并应使用该类型的打开/关闭标签标记区域中的每一行:

    (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 ,然后删除标签参数,删除文本 \nMTag for line:从调用到交互,并更新插入调用以仅插入 "<li\>"正如你所期望的那样。

    关于emacs - 像TextMate一样在打开/关闭标签中包装选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1558178/

    相关文章:

    emacs 和 gdb-many-windows

    emacs - 从 emacs 菜单栏中的 "Buffers"项更改菜单的大小

    http - Emacs Lisp - 如何通过 HTTP 传输二进制文件?

    emacs - Emacs Lisp 中的前向函数超出评估深度

    r - 如何自动化这些 emacs ESS (ess-remote) 命令?

    emacs - Emacs 和 Emacs Lisp 的故障排除技术

    haskell - Intero:来自堆栈配置的 ghc 不匹配

    scala - 在我尝试使用 RUN 命令后,Emacs Ensime-sbt 没有响应进入

    templates - 我应该使用什么通用模板处理器?

    emacs - 如何仅为 emacs 中的自定义编译命令设置自定义错误处理?