Emacs находит и заменяет регулярное выражение в нескольких файлах (find-name-dired + Q), не сохраняет мои буферы? - PullRequest
13 голосов
/ 30 ноября 2011

Я не могу понять, что здесь происходит. Я сделал поиск и замену по всему каталогу, используя:

  1. M-x найди имя-заправил RET
  2. Выберите корень моего проекта
  3. Введите * .rb в качестве имен файлов для соответствия
  4. Нажмите "t", чтобы выбрать все найденные файлы
  5. Нажмите «Q» (сдвиг Q), чтобы начать поиск / замену
  6. Введите «транзакция» в качестве запроса, затем введите «счет» в качестве замены

Теперь я перебрал все буферы, которые он открывает для меня, выборочно нажимая "y" или "n" в зависимости от замены. Когда он закончился, он просто оставил меня в последнем буфере, который я изменил.

Итак, нажатие C-z на заднем плане окна emacs и проверка того, что изменилось, показывает, что ни один из файлов не сохранен, чего я ожидал.

Итак, я сделал M-x save-some-buffers RET, который говорит мне, что нет файлов для сохранения. Поэтому я начинаю вращать свои буферы с помощью C-x b и проверяю, что да, действительно, буферы do имеют изменения по сравнению с диском.

Итак, я повторяю этот процесс, на этот раз с совершенно новым процессом emacs (когда я запускаю процесс, никаких открытых буферов вообще нет). В конце у меня открыта куча буферов с изменениями (которые я вижу), но опять же, emacs говорит, что сохранять нечего.

Поэтому я попытался использовать C-x C-b, чтобы вызвать IBuffer. Отметьте все файлы, которые я хотел сохранить, затем нажмите «S», чтобы сохранить их, после чего появится сообщение «Операция завершена; сохранено 27 буферов». Круто ... кроме того, что git все еще говорит мне, что emacs на самом деле ничего не спас.

Что я делаю не так? Я хочу заменить «транзакция» на «счет-фактуру» по всему моему проекту, хотя мне нужно сделать это в интерактивном режиме, поскольку в некоторых местах такая замена не должна выполняться.

Emacs 23.

1 Ответ

5 голосов
/ 30 ноября 2011

Я повторил поведение, которое вы описали. Конечно, пахнет как ошибка для меня. Пожалуйста, сообщите об этом по адресу bug-gnu-emacs@gnu.org.

Авторы Emacs очень отзывчивы.

P.S. Люблю детали, которые вы положили в свой вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...