16

Command当我通过++搜索多个文件时ShiftF结果以文本文件的形式返回。此文本文件是可编辑的,但所做的更改不会影响原始文件。

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

4

2 回答 2

20

Find Results Apply Changes插件就是为此而创建的。

您可以通过Package Control 的“Install Package”选项安装它。

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

File > Save with Encoding > UTF-8

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

  • 在文件夹中搜索“foo”(Sublime 的默认快捷键是CTRL++ SHIFTS
  • 这将打开一个“查找结果”缓冲区,其中列出了所有带有“foo”的文件。
  • 将“foo”的实例更改为“bar”或其他东西......
  • 进入菜单:

    Find > Find Results - Apply Changes
    
  • 这会将所做的所有更改写回文件并自动保存修改后的文件。

默认情况下,使用菜单是使其工作的唯一方法。但是,它非常烦人,并且不像使用键盘快捷键那样节省时间。您可以通过在

Preferences > Key Bindings - User

通过增加:

{ "keys": ["ctrl+r"], "command": "find_results_apply_changes" },

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

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

使用区域来允许您进行多行更改,但是在插入新换行符时,如果您多次提交会损坏文件,这是因为新换行符会移动行号。如果您在修改文件的其他实例中添加/删除换行符,也会“损坏”文件。例如在另一个选项卡中。为防止损坏,此软件包将提醒您并阻止其中大部分。

(这是Find Results Apply Changes Github 页面中描述的修改版本。)

于 2014-05-07T14:24:22.070 回答
2

我能想到的最短解决方法是从搜索结果中打开目标文件,只需双击路径,然后在 Windows 上使用Ctrl+跳转到相应的行或G⌃</kbd>+G on Mac OS.

我就是这样做的,必须说这只是几秒钟的事情,即使没有插件。

于 2013-11-08T09:50:34.617 回答