Как я могу воспроизвести макрос jEdit

1091
wcm

Я искал приличный бесплатный текстовый редактор, похожий на Ultra Edit. Мне очень нравится jEdit, но мне не хватает одной функции. В Ultra Edit я могу записать макрос, который редактирует данную строку, а затем воспроизвести этот макрос так, чтобы он работал до тех пор, пока курсор не достигнет конца файла. Есть ли способ сделать это в jEdit?

Спасибо!

2
Я удивлен, узнав, что сегодня нет простого ответа на этот вопрос! Я не мог найти ни одного. Лучшая вещь, как я вижу, идет с AHK. cregox 10 лет назад 0

4 ответа на вопрос

3
Underdog

Как уже упоминалось AhLeung, панель действий позволит вам указать количество раз, чтобы повторить задачу. Я часто делаю что-то похожее на это -

Запишите временный макрос: C + m C + m, выполните задание, C + m C + s.

Запустите макрос 200 раз: C + Enter (открывает панель действий внизу окна), введите 200, затем C + m C + p

Простейший пример, напишите «x» 300 раз: C + Enter, 300x

2
JamesGecko

jEdit поддерживает запись и воспроизведение макросов; как временные, так и сохраненные. Ctrl + m Ctrl + m начинает запись временного макроса, Ctrl + m Ctrl + s останавливает запись, а Ctrl + m Ctrl + p воспроизводит макрос.

Полная документация доступна в главе 8 руководства пользователя jEdit.

Спасибо Джеймс. Я знаю, как записывать макросы. Я знаю, как играть в макросы по одному. Тем не менее, мне иногда нужно выполнить действие на 10 или 100 тысячах строк, и метод нажатия клавиш вызывает всплеск синдрома старого туннеля. Ультраредактирование имеет возможность запускать данный макрос до тех пор, пока не будет достигнут EOF. Я думаю, что мне может понадобиться написать макрос, который сделает это, но не хочет заново изобретать колесо. wcm 14 лет назад 0
2
AhLeung

Вы можете попробовать Action Bar для повторения.

Нет, не работает. cregox 10 лет назад 0
1
Thomas Lundström

Add some code manually. Record one iteration of what should be done and then edit the code and add something like this template:

 String input = Macros.input(view, "Number of repeats?"); int repeat = 0; if(input != null && input != "") { try { repeat = Integer.parseInt(input); } catch (Exception e) { // bad input } } for(int count=0; count < repeat; count++) { *** insert your recorded macro here *** }