Какие редакторы из Emacs, Vim и JEdit поддерживают несколько одновременных точек вставки текста?

21
задан halfer 11 April 2017 в 06:46
поделиться

7 ответов

Энергия способ сделать это. команда, которая повторяет последнее изменение. Так, например, если я изменяю указатель на ссылку, и у меня есть набор obj-> func, что я хочу измениться на obj.func тогда, я ищу obj->, сделайте 2cw для изменения obj-> на obj., затем сделайте n.n.n., пока все экземпляры не будут изменены.

, Возможно, не гибкое как, что Вы говорите о, но это работает часто и очень интуитивно и быстро, когда это делает.

8
ответ дан 29 November 2019 в 20:59
поделиться

moccur-edit.el почти делает то, что Вы хотите. Все местоположения, соответствующие regexp, отображены, и редактирование соответствий вносит изменения в соответствующем источнике. Однако редактирование сделано на единственном экземпляре возникновения.

я предполагаю, что это было бы прямым для расширения его, чтобы позволить Вам редактировать их всех одновременно (по крайней мере, в простом случае).

существует демонстрация его, нашел здесь .

Оказывается, новейшие версии moccur-редактирования не применяют изменения в режиме реального времени - необходимо применить изменения. Изменения также теперь невозможны (хорошая победа).

7
ответ дан 29 November 2019 в 20:59
поделиться

В EMACS Вы могли/, делают это с M-x find-grep и макрос. Если Вы действительно настаиваете, что это полностью автоматически, то Вы включали бы find-next в макрос.

, Но честно, это кажется мне своего рода функцией Microsoft: да, это добавляет к списку функций, но почему беспокойство? И Вы помнили бы, что это существовало за шесть месяцев, когда Вы хотите использовать его снова?

6
ответ дан 29 November 2019 в 20:59
поделиться

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

3
ответ дан 29 November 2019 в 20:59
поделиться

Это должно быть что-то вроде этого в энергии:

%s/paint.\((.*),/\1.paint(/ 

Или что-то как этот, я действительно плох в "ложных" регулярных выражениях.

идея является заменой шаблон:

/paint(object,/ 

с

/object.paint(/ 

Так, да, это "поддерживается"

1
ответ дан 29 November 2019 в 20:59
поделиться

пакет YASnippet для Emacs использует его. Посмотрите 2:13 и 2:44 в экранная демонстрация .

3
ответ дан 29 November 2019 в 20:59
поделиться

Нет. Это было бы довольно трудно сделать с, прежде всего, основанным на консоли UI.

Тем не менее существуют подобные функции в энергии (и emacs, хотя я не использовал его почти так) - поиск и замена, как люди сказали, и более точно так же режим вставки столбца: http://pivotallabs.com/users/brian/blog/articles/350-column-edit-mode-in-vi

0
ответ дан 29 November 2019 в 20:59
поделиться