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


2

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

Спасибо!


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

Ответы:


3

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

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

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

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


2

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

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


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


1

Добавьте код вручную. Запишите одну итерацию того, что должно быть сделано, затем отредактируйте код и добавьте что-то вроде этого шаблона:

    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 ***
}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.