Энергия способ сделать это. команда, которая повторяет последнее изменение. Так, например, если я изменяю указатель на ссылку, и у меня есть набор obj-> func, что я хочу измениться на obj.func тогда, я ищу obj->, сделайте 2cw для изменения obj-> на obj., затем сделайте n.n.n., пока все экземпляры не будут изменены.
, Возможно, не гибкое как, что Вы говорите о, но это работает часто и очень интуитивно и быстро, когда это делает.
moccur-edit.el
почти делает то, что Вы хотите. Все местоположения, соответствующие regexp, отображены, и редактирование соответствий вносит изменения в соответствующем источнике. Однако редактирование сделано на единственном экземпляре возникновения.
я предполагаю, что это было бы прямым для расширения его, чтобы позволить Вам редактировать их всех одновременно (по крайней мере, в простом случае).
существует демонстрация его, нашел здесь .
Оказывается, новейшие версии moccur-редактирования не применяют изменения в режиме реального времени - необходимо применить изменения. Изменения также теперь невозможны (хорошая победа).
В EMACS Вы могли/, делают это с M-x find-grep
и макрос. Если Вы действительно настаиваете, что это полностью автоматически, то Вы включали бы find-next
в макрос.
, Но честно, это кажется мне своего рода функцией Microsoft: да, это добавляет к списку функций, но почему беспокойство? И Вы помнили бы, что это существовало за шесть месяцев, когда Вы хотите использовать его снова?
Я не думаю, что эта функция имеет прямой аналог или в Emacs или в Vim, что не означает, что все достижимое с этой функцией не возможно некоторым способом с двумя 'олдскульными' редакторами. И как большинство вещей Emacs и Vim, продвинутые пользователи, вероятно, были бы в состоянии достигнуть такой задачи чрезвычайно быстро, даже если простые смертные как я могли бы провести пять минут, выясняя корректный поиск grep и замену соответствующими обратными ссылками, например.
Это должно быть что-то вроде этого в энергии:
%s/paint.\((.*),/\1.paint(/
Или что-то как этот, я действительно плох в "ложных" регулярных выражениях.
идея является заменой шаблон:
/paint(object,/
с
/object.paint(/
Так, да, это "поддерживается"
пакет YASnippet для Emacs использует его. Посмотрите 2:13 и 2:44 в экранная демонстрация .
Нет. Это было бы довольно трудно сделать с, прежде всего, основанным на консоли UI.
Тем не менее существуют подобные функции в энергии (и emacs, хотя я не использовал его почти так) - поиск и замена, как люди сказали, и более точно так же режим вставки столбца: http://pivotallabs.com/users/brian/blog/articles/350-column-edit-mode-in-vi