环绕
Sublime-surround 是一个为 SublimeText 2 添加、删除和修改光标或选择周围文本的插件。
详情
安装次数
- 总计 8K
- Win 3K
- Mac 4K
- Linux 2K
8月6日 | 8月5日 | 8月4日 | 8月3日 | 8月2日 | 8月1日 | 7月31日 | 7月30日 | 7月29日 | 7月28日 | 7月27日 | 7月26日 | 7月25日 | 7月24日 | 7月23日 | 7月22日 | 7月21日 | 7月20日 | 7月19日 | 7月18日 | 7月17日 | 7月16日 | 7月15日 | 7月14日 | 7月13日 | 7月12日 | 7月11日 | 7月10日 | 7月9日 | 7月8日 | 7月7日 | 7月6日 | 7月5日 | 7月4日 | 7月3日 | 7月2日 | 7月1日 | 6月30日 | 6月29日 | 6月28日 | 6月27日 | 6月26日 | 6月25日 | 6月24日 | 6月23日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 2 | 1 | 0 | 0 |
Mac | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
README
sublime-surround
Sublime-surround 是一个用于 SublimeText 2 和 3 添加、删除和修改光标或选择周围文本的插件。
它可以轻松完成以下操作
- 将单引号更改为双引号
- 将括号更改为方括号
- 将
<div id="my-custom-oldschool-header">lorem ipsum</div>
更改为<header>lorem ipsum</header>
这是对 Tim Pope's vim-surround 的爱的致敬,这是我从 vim 切换到 SublimeText 2 的工作流程中一个很大的差距。虽然并不完全还原,但我认为它是将 vim 插件的概念和功能翻译到 sublime 上下文的相当不错的实现。
为 Vintage 可用的 Vim-surround 兼容映射作为单独的插件在此处提供: https://github.com/jcartledge/vintage-sublime-surround
安装
包控制
包控制 是“一个功能齐全的包管理器,有助于发现、安装、更新和删除 SublimeText 2 的包。”这是管理 SublimeText 2 包文件夹的首选方式。
遵循以下说明 安装 Sublime-surround。
使用 Git
转到您的 SublimeText 2 Packages
目录,并使用以下命令克隆仓库
$ git clone https://github.com/jcartledge/sublime-surround.git
手动下载
使用 .zip 下载选项下载文件。
解压缩文件。
将文件夹复制到您的 SublimeText 2 Packages 目录。
基本使用
所有功能都通过 SublimeText 命令面板访问:Linux 和 Windows上的 CTRL-SHIFT-P
,Mac上的 CMD-SHIFT-P
。
有三个命令
- 环绕:环绕选择
- 环绕:更改环绕
- 环绕:删除环绕
包围选择作用于当前选择或多个选择。它会提示输入要包围选择的文本。
更改包围作用于当前光标或多个光标。它会提示输入要替换的包围文本,然后输入要替换的文本。
删除包围作用于当前光标或多个光标。它会提示输入要删除的包围文本。它是一种特殊的更改包围情况,其中替换文本为空字符串。
有关搜索和包围文本处理的信息,请参阅以下内容。
功能
配对感知
Surround理解以下配对关系
{ }
[ ]
( )
< >
/* */
- “
在vim-surround中,将配对的开头符号指定为包围文本将为被包围文本添加内部空白。如果你不需要空白,请使用结尾符号。
在指定替换或删除的文本时,同样适用此规则,但如果内部没有空白,则任一符号均可工作。
示例
将James Cartledge [email protected]
更改
为James Cartledge <[email protected]>
- 选择电子邮件地址
- 调用命令面板(
CTRL-SHIFT-P
/CMD-SHIFT-P
) - 选择包围:包围选择
- 输入
>
并按回车键
注意我们使用的是结尾符号,因此不会添加内部空白。
将if (a > 100) doSomething();
更改
为if (a > 100) { doSomething(); }
- 选择文本
doSomething();
- 调用命令面板(
CTRL-SHIFT-P
/CMD-SHIFT-P
) - 选择包围:包围选择
- 输入
{
并按回车键
请注意,这里使用开头符号会导致添加内部空白。
将if (a > 100) { doSomething(); }
更改
为if (a > 100) doSomething();
- 将光标放置在文本
doSomething();
内部 - 调用命令面板(
CTRL-SHIFT-P
/CMD-SHIFT-P
) - 选择包围:删除包围
- 输入
{
并按回车键
请注意,通过使用开头括号,我们可以移除内部空白以及包围括号。如果你希望保留空白,则可以指定结尾括号。 (如果内部没有空白,则任一符号均可移除括号。)
标签感知
支持HTML/XML带有属性的标签,但与vim-surround略有不同。
示例
将Email me for more information
更改
为<a href="mailto:[email protected]">Email me</a> for more information
- 选择文本
Email me
- 调用命令面板(
CTRL-SHIFT-P
/CMD-SHIFT-P
) - 选择包围:包围选择
- 输入包括属性的打开标签:
<a href="mailto:[email protected]">
并按回车键
将<div class="my-custom-header">lorem ipsum</div>
更改
为<header>lorem ipsum</header>
- 将光标放置在文本
lorem ipsum
内部 - 调用命令面板(
CTRL-SHIFT-P
/CMD-SHIFT-P
) - 选择包围:更改包围
- 输入要替换的打开标签:
<div>
并按回车键 - 输入替换标签:
<header>
注意,无需指定要匹配的标签的属性 - 通过不指定属性,你是在告诉命令匹配没有或任何属性的标签。如果你只指定属性,则只能匹配具有你指定属性的标签。
这里我们没有为替换标签header
指定任何属性,但如果我们想的话,那也会像上面邮件示例中一样工作。
正则表达式
在更改/删除中,任何非已识别的配对或标签且长度超过一个字符的搜索文本都被视为正则表达式。
多个光标/选择
Surround 应该可以很好地支持多个光标和选择,但尚未经过充分测试,因为我很少使用它们。
映射
没有默认的键映射;功能通过SublimeText命令面板访问。
您可以在自己的 User/Default.sublime-keymap
文件中创建映射,没有任何阻止。您可以映射的命令有
surround_selection
surround_change
surround_delete
为 Vintage 可用的 Vim-surround 兼容映射作为单独的插件在此处提供: https://github.com/jcartledge/vintage-sublime-surround
贡献
放手去做吧。请提供干净、经过代码检查的 pull request :)
免责声明
我在一生中从未编写过 Python(除了一行补丁用于另一个 SublimeText 插件。)这是对 Python 设计以及 SublimeText 2 插件 API 设计的极大称赞,我才能够走到这一步。我已经警告过你们。
现有技术
曾经有另一个具有相似功能的插件,但我觉得它很少被维护,我也从未能够让它正常工作。