如何通过Sublime Text中的"查找结果"编辑多个文件

pie*_*e6k 16 sublimetext sublimetext2 sublime-text-plugin

当我通过Command+ Shift+ 搜索多个文件时F,结果将返回为类似文本文件的内容.此文本文件是可编辑的,但所做的更改不会影响原始文件.

是否可以将"查找结果"中的更改传播到原始源文件?

Raf*_*fal 20

查找结果将更改应用插件是为了做到这一点.

您可以通过Package Control的 "安装包"选项安装它.

在使用此插件之前,请确保使用菜单启用了UTF-8编码:

File > Save with Encoding > UTF-8
Run Code Online (Sandbox Code Playgroud)

安装后,您可以将对"查找结果"缓冲区所做的任何更改应用回文件:

  • 在文件夹中搜索"foo"(Sublime的默认快捷键是CTRL+ SHIFT+ S)
  • 这将打开一个"查找结果"缓冲区,列出其中包含"foo"的所有文件.
  • 将"foo"的实例更改为"bar"或其他内容......
  • 转到菜单:

    Find > Find Results - Apply Changes
    
    Run Code Online (Sandbox Code Playgroud)
  • 这将写回所有对文件所做的更改并自动保存修改后的文件.

默认情况下,使用菜单是使其工作的唯一方法.但是,它非常令人厌烦,并且不会像使用键盘快捷键那样节省时间.您可以通过添加新行来设置所选键盘快捷键

Preferences > Key Bindings - User
Run Code Online (Sandbox Code Playgroud)

通过增加:

{ "keys": ["ctrl+r"], "command": "find_results_apply_changes" },
Run Code Online (Sandbox Code Playgroud)

不要使用CTRL+,S因为它会覆盖保存文件快捷方式.

警告!:根据插件的作者:

使用区域允许您进行多行更改,但是当插入新换行符时,如果您多次提交将损坏文件,这是因为新换行符将改变行号.如果在修改文件的其他实例中添加/删除换行符,也会"损坏"文件.例如在另一个标签中.为防止损坏,此程序包将提醒您并阻止其中的大部分内容.

(这是查找结果应用更改 Github页面中描述的修改版本.)