Как редактировать несколько файлов с помощью результатов поиска в Sublime Text

Когда я ищу несколько файлов с помощью Command + Shift + F, результат возвращается как текстовый файл. Этот текстовый файл доступен для редактирования, но сделанные изменения не влияют на исходные файлы.

Можно ли сделать так, чтобы изменения в «Результатах поиска» распространялись на исходный исходный файл?


person Adam Pietrasiak    schedule 07.11.2013    source источник
comment
Насколько я знаю, это невозможно - я пытался найти что-нибудь с похожей функциональностью.   -  person Mikko Ohtamaa    schedule 08.11.2013
comment
@MikkoOhtamaa Теперь это так. Смотрите мой ответ.   -  person Rafal    schedule 07.05.2014
comment
замена в файлах с помощью регулярных выражений и групп захвата может быть полезна (вы даже можете создать проект поиска с определенными выбранными или игнорируемыми файлами или папками)   -  person Rivenfall    schedule 10.03.2020


Ответы (2)


Плагин Find Results Apply Changes был создан именно для этого.

Вы можете установить его с помощью параметра Package Control "Установить пакет".

Перед использованием этого плагина убедитесь, что у вас включена кодировка UTF-8 с помощью меню:

File > Save with Encoding > UTF-8

После установки вы можете применить любые изменения, внесенные в буфер «Результаты поиска», к файлам:

  • Найдите «foo» в папке (сочетание клавиш Sublime по умолчанию — CTRL+SHIFT+S)
  • Это откроет буфер «Результаты поиска», в котором перечислены все файлы с «foo».
  • Измените экземпляры «foo» на «bar» или что-то еще...
  • Перейти в меню:

    Find > Find Results - Apply Changes
    
  • Это запишет все изменения, сделанные обратно в файлы, и автоматически сохранит измененные файлы.

По умолчанию использование меню — единственный способ заставить его работать. Однако это довольно утомительно и не экономит столько времени, сколько сочетание клавиш. Вы можете установить выбранное сочетание клавиш, добавив новую строку в

Preferences > Key Bindings - User

добавляя:

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

Не используйте CTRL+S, так как это перезапишет ярлык сохранения файла.

Внимание! По словам автора плагина:

Использует области, чтобы вы могли вносить многострочные изменения, но при вставке новых строк повредит файлы, если вы зафиксируете более одного раза, потому что новые новые строки будут сдвигать номера строк. Также «повреждает» файлы, если вы добавляете/удаляете новые строки в других экземплярах измененных файлов. например в другой вкладке. Чтобы предотвратить повреждение, этот пакет предупредит вас и предотвратит большинство из них.

(Это измененная версия описания со страницы Поиск результатов с применением изменений Github.)

person Rafal    schedule 07.05.2014
comment
Спасибо за подробный ответ. ценить - person Ganesh RJ; 15.09.2014
comment
Спасибо, но это убило двойной щелчок в результатах поиска для меня. - person Bondolin; 13.11.2015
comment
Хороший плагин испорчен предвзятым взглядом автора. Подробнее см. в разделе WONTFIX. Практически непригоден для использования в Windows (или любой системе, где окончание строки имеет значение и не совпадает с окончанием строки unix). - person Mrchief; 15.02.2017
comment
Не на СТ3? Это делает меня очень ???? - person Unknow0059; 01.08.2020

Самым коротким обходным решением, которое я могу придумать, было бы открыть целевой файл из результатов поиска, просто дважды щелкнув путь, а затем перейдя на соответствующую строку с помощью Ctrl+G в Windows. или +G в Mac OS.

Именно так я это делаю, и должен сказать, что это всего лишь вопрос секунд, даже без плагина.

person chrisg86    schedule 08.11.2013
comment
Да, но представьте опцию «поиск и замена» с файлом результатов поиска или что-то в этом роде, когда вам нужно что-то изменить в 100 файлах. - person Adam Pietrasiak; 11.11.2013
comment
Если вы хотите изменить одну и ту же строку в этих 100 файлах, вы можете использовать параметр «Заменить в файлах вместо поиска в файлах». (Command+Shift+F в правом нижнем углу). - person chrisg86; 11.11.2013