LINUX.ORG.RU

где в emacs стандартный поиск и замена в буферах?


0

0

я знаю что можно

(require 'color-moccur)
(require 'moccur-edit)

и тогда в окне результатов moccur можно заменить найденные
фрагменты и потом записать изменения назад в файлы где эти
фрагменты были найдены

но может быть есть что то стандартное, попроще? вроде такого
M-x multi-replace RET что_менять RET на_что_менять RET
anonymous

Ответ на: комментарий от fghj

C-s - поиск M-x replace-string - замена строки M-x replace-regexp - замена регулярного выражения

Deleted
()

Добавлю ещё, C-r - поиск назад.

Laz ★★★★★
()

так это я знаю, нужен поиск и замена в буфер_ах_ т.е. сразу в нескольких. И не в файлах в одном каталоге типа grep, у меня открыто много файлов из разных каталогов и вот я хочу заменить во всех них одну строку на другую. Функция в общем то вполне логичная для многофайлового редактора.

anonymous
()
Ответ на: комментарий от anonymous

> так это я знаю, нужен поиск и замена в буфер_ах_

Проблема в том, что в Emacs открыто обычно много нередактируемых буферов. Вообще, емакс плохо подходит для таких задач. Не очень трудно написать функцию замены, основываясь на buffer-list, query-replace и тому подобных, но проще вульгарно менять при помощи sed, если файлов много. А если мало, то не заморачиваться.

Ну а если это все же нужно для чего-то, то курить Elisp manual на предмет buffer-list и тому подобного.

atoku ★★★
()
Ответ на: комментарий от atoku

>Не очень трудно написать функцию замены

Так ведь хочется чтобы побыстрее:) (с) 12 стульев Гайдай

Неужто нет ничего готового ?

anonymous
()
Ответ на: комментарий от amm

спасибо, ibuffer я не знал. Хотя, если я правильно понял, это не так просто как хотелось бы, там ведь все равно надо открыть его окно и выделить нужные буферы - т.е. действий не меньше чем в moccur?

anonymous
()
Ответ на: комментарий от anonymous

Так он предоставляет набор команд для быстрой маркировки.
Например, в окне ibuffer жмешь `t I'. После замены сохраняешь файлы `S'.

Сам вызов ibuffer можно повесить на `C-x C-b'

(require 'ibuffer)
(global-set-key "\C-x\C-b" 'ibuffer)

amm
()
Ответ на: комментарий от amm

неплохо:) пожалуй подходит.

Большое спасибо

PS как бы этот список ibuffer сделать постоянно видимым вертикально справа например...?

anonymous
()
Ответ на: комментарий от anonymous

>Хорошее название для плагина. Очень точно отражает сущность работы в емакс. :)

Йа буффер? :)

Zubok ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.