evil-surround 标签环绕终极指南:HTML/XML 编辑中必须掌握的 6 个技巧

发布时间:2026/10/6 17:18:43

evil-surround 标签环绕终极指南:HTML/XML 编辑中必须掌握的 6 个技巧 evil-surround 标签环绕终极指南HTML/XML 编辑中必须掌握的 6 个技巧【免费下载链接】evil-surroundyou will be surrounded (surround.vim for evil, the extensible vi layer)项目地址: https://gitcode.com/gh_mirrors/ev/evil-surround对 Emacs 用户而言evil-surround 是让 HTML/XML 标签编辑效率翻倍的必备插件。它模拟 Vim 生态中著名的 surround.vim运行在 EvilEmacs 的 vi 模拟层之上只需ys、cs、ds三组按键就能完成加标签、换标签、删标签的全部操作。本指南面向新手用 6 个实战技巧带你快速掌握 evil-surround 标签环绕从此告别逐字删除尖括号的苦日子。evil-surround 是什么标签环绕如何提升编辑效率evil-surround 的核心思想是环绕任何一对定界符——圆括号、引号、甚至div/div这样的 HTML 标签——都能像外套一样被快速穿上、换掉或脱掉而且永远不需要把光标精确移到符号上。项目核心代码集中在evil-surround.el测试用例位于test/evil-surround-test.el完整使用说明见readme.org仓库根目录的Makefile还可一键运行全部测试make test。三大核心操作一览操作按键结构作用添加环绕ys 文本对象 定界符给文本加上标签或符号修改环绕cs 旧定界符 新定界符替换已有的标签或符号删除环绕ds 定界符去掉标签或符号保留内容常用文本对象速查文本对象含义iw当前单词inner wordaw当前单词及周围空白it/atHTML 标签内部 / 整个标签区域s/S整行 / 多行选区技巧 1evil-surround 一键安装方法use-package 三步启用大多数 Emacs 用户通过 use-package 管理插件把下面配置加入~/.emacs或~/.emacs.d/init.el即可(use-package evil-surround :ensure t :config (global-evil-surround-mode 1))重启 Emacs 或重新加载配置后global-evil-surround-mode会在所有缓冲区生效无需逐个模式开启。如果想手动安装也可以执行git clone https://gitcode.com/gh_mirrors/ev/evil-surround把evil-surround.el放入 load-path再在配置中写入(require evil-surround)同样可用。技巧 2用 ys 给文本快速添加 HTML 标签这是最常用的操作。把光标停在单词上依次按下ysiwem→ 得到emHello/emysawdiv→ 包裹单词及其相邻空白yssarticle→ 给整行内容套上article标签口诀很好记ys是你包围you surroundiw选中整个单词em是目标标签。若使用大写yS会在内容前后另起新行包裹适合section、article这类块级元素。技巧 3用 cs 修改 HTML 标签一次按键完成替换写 HTML 时最烦人的莫过于把span改成div——用 evil-surround 只需一步cstdiv→ 把光标所在位置的标签整体替换为div内容原封不动cs→ 双引号变单引号csq→ 把引号内容包成q引用标签这里的t代表 tag标签是cs在 HTML/XML 编辑中的灵魂组合键。无论光标在标签名上还是内容里都能准确定位。技巧 4用 ds 删除多余标签的快捷操作页面重构时常常要去掉一层无意义的包裹标签ds就是为此而生dst→ 删除当前标签对只保留内部内容ds→ 删除一对引号ds{→ 删除花括号带空格版本用ds{紧凑版用ds}删除后光标位置和内容格式都不会被破坏比手动框选删除可靠得多。技巧 5可视化模式 S 与 gS批量包裹多行内容当需要把一大段文字一次性套进section classintro时手动补全开闭标签非常痛苦。正确姿势是按大写V进入行可视化模式选中多行输入Ssection classintro回车整段内容立即被标签环绕。若希望标签前后各留一个空行更贴近块级元素排版改用大写gS即可。选中多个单词时小写s也会进入环绕输入状态选中即套。技巧 6自定义环绕对让 evil-surround 适配你的编码习惯默认配置已经覆盖常见符号但你可以通过evil-surround-pairs-alist添加任意自定义环绕对。例如在 C 模式中希望ysiw生成带空格的尖括号(add-hook c-mode-hook (lambda () (push (? . ( . )) evil-surround-pairs-alist)))这个变量是 buffer-local缓冲区局部的意味着每种语言模式都能有自己的环绕对互不干扰用setq-default则可以整体修改全局默认值。快速记忆卡evil-surround 常用命令汇总目标按键示例结果包裹单词为标签ysiwememHello/em包裹整行为标签yssppHello/p替换当前标签csth1spanx/span→h1x/h1删除当前标签dstemx/em→x引号换标签csqx→qx/q多行批量包裹VSdiv选区整体加外层标签常见问题为什么vs不再环绕部分老教程会推荐vs进入环绕这是早期版本的习惯用法。由于上游 surround.vim 的行为变更新版本统一使用S可视化模式完成环绕vs已不再触发该功能遇到时换成S即可。结语掌握这 6 个技巧后HTML/XML 中的标签增删改几乎都能在三次按键内完成。建议先把技巧 1 和技巧 2 用熟再逐步练习cs、ds与自定义环绕对一周后你就能感受到手指不离键盘、光标不必对齐的环绕编辑快感。【免费下载链接】evil-surroundyou will be surrounded (surround.vim for evil, the extensible vi layer)项目地址: https://gitcode.com/gh_mirrors/ev/evil-surround创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/7 3:30:11

千兆RJ45网口PCB布局布线全流程:从Altium Designer实战到避坑指南

RJ45网口这个东西,几乎是硬件工程师绕不开的一道坎。无论是做交换机、路由器、工业控制板,还是简单的MCU联网项目,只要牵扯到以太网,你迟早要在PCB上给它安个家。很多刚入行的朋友觉得网口就是摆个座子、拉几根线的事,…

2026/10/7 3:30:11

链表OJ解题指南:从指针操作到高频题型实战

1. 链表OJ到底在考什么先聊点实在的。链表OJ在各类考试和面试里的出场率相当高,几乎每个系统学数据结构的人都会被它折磨一阵子。我见过不少第一次刷链表题目的同学,卡住的点往往不是“不会写代码”,而是“看不懂题目想让我干什么”。这其实暴…

2026/10/7 3:30:11

Laravel11 + Vue3 构建客户管理系统:前后端分离实战与避坑指南

最近在整理自用代码库的时候,把一套基于 Laravel11 和 Vue3 的客户管理系统 CRM 源码重新翻出来梳理了一遍。这套系统最初是为了接手一个传统单体 PHP 项目,被客户要求改造成前后端分离架构而做的。当时 Laravel 刚出到 11 版本,前端这边 Vue…

2026/10/7 3:30:11

TCP Reno拥塞控制仿真实验全解析:从NS2脚本到cwnd曲线实战

简介:中国海洋大学计算机网络实验的TCP Reno版本资源包,面向计算机网络课程学生与对TCP拥塞控制感兴趣的初学者,系统展示Reno实现快速重传、快速恢复以及防止中间窗口收缩的核心机制,适用于课程实验、期末复习与TCP原理自学。资源…

2026/10/7 3:30:11

百考通AI学术工作流实战:从文献梳理到论文润色

前两周,一个研究生学弟抱着一堆文献来找我,说:“老师,我真卷不过那些天天用AI的人,人家一篇综述三天搞定,我一个月还没理清思路。”我笑了笑,把百考通AI的用法发给他。不是因为这款工具能让谁一…

2026/10/7 3:25:11

宠物商城前后端分离实战:SpringBoot+Vue源码解析与运行部署

宠物商城系统前后端分离实战:从跑起来到改得动,一篇讲透这套可直接运行的源码怎么用我见过太多开源项目,标题写得天花乱坠,下载下来跑三天都起不来。但今天要聊的这套宠物商城网站信息管理系统,其源码落地性相当扎实&a…

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/6 4:01:51

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/6 17:46:51

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

ESP32免重刷固件:浏览器直接修改NVS键值实现WiFi配置更新

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

SAP HANA查询结果导出CSV:避开乱码、性能与权限的实用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

数字后端Placement阶段Density与Congestion控制实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑