ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

环绕

jcartledge 全部

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

源代码
raw.​githubusercontent.​com

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 设计的极大称赞,我才能够走到这一步。我已经警告过你们。

现有技术

曾经有另一个具有相似功能的插件,但我觉得它很少被维护,我也从未能够让它正常工作。