Создание специальных команд для Notepad ++ с использованием NppExec

8642
Assad Ebrahim

Notepad ++ имеет удобную встроенную временную метку с возможностью выбора коротких или длинных форматов, но оба используют встроенный формат даты компьютера, на котором они находятся, показывая либо первый месяц (если США), либо первый день (если Великобритания / Европа).

Я работаю как в США, так и в Европе, и постоянное переключение месяца и дня становится немного смущающим, особенно при просмотре журналов или заметок.

Интересно, есть ли простой способ - либо с помощью существующего средства, либо, возможно, с помощью какого-либо макроса - получить столь же быструю сгенерированную временную метку, но в международном формате:

YYYY-MM-DD--DAY--HH:MM

(Наличие ДНЯ недели является хорошим дополнением и позволяет избежать необходимости искать их позже при просмотре записей позже.)

Пример:

2012-08-19--Sun--20:30

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

8
Каковы черты между DD & DAY и DAY & HH? Louis 11 лет назад 0
Двойные черточки - это визуальные зачеты даты от дня от времени. Кажется более приятным с эстетической точки зрения, чем «2012-08-19-Sun-20: 30». (Хотелось бы, чтобы отметка времени представляла собой одну единицу символов, поэтому не нужно пробелов ...) Отредактировал вопрос соответствующим образом. Assad Ebrahim 11 лет назад 0
Проделав тяжелую работу по кодированию в течение многих лет с использованием Notepad ++ из-за его мощного встроенного набора функций, вы не представляете, сколько раз я хотел иметь возможность подключаться к нему с помощью языка сценариев из GUI. Спасибо за публикацию этого! Ben Richards 11 лет назад 1

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

6
Assad Ebrahim

Да, я нашел способ, используя плагин NppExec и Ruby.

Решение:

Подход . Получите внешний язык сценариев (в данном случае Ruby), чтобы вернуть отформатированную временную метку, а NppExec - получить ее и вставить в местоположение курсора в текущем файле, показанном в Notepad ++.

Сначала настройте консоль:

 npe_console v+ // set console to receive output in $(OUTPUT) variable npe_console d+ // set current working directory to same as current file 

Затем в NppExec> Выполнить команду меню введите следующий фрагмент:

 // Diary snippet (Generates timestamp YYYY-MM-DD--DAY--HH:MM for NPP++) npp_console disable // turn console off for silent operation // ruby one-liner does the work ruby -r Date -e "dt=DateTime.now; dname = Date::ABBR_DAYNAMES[dt.wday]; puts dt.strftime(\"%Y-%m-%d--#--%H:%M\");" sel_settext $(OUTPUT) // put result at cursor in current file npp_console enable // restore console back to default 

Он использует движок Ruby для генерации метки времени и вставляет ее в том месте, где находится курсор в текущем файле в Notepad ++. Результатом (с задержкой около 500 мс) является отметка времени:

 2012-08-20--Mon--20:16 

Примечание. Хотя это, безусловно, и делает свою работу, если у кого-то есть решение, не зависящее от чего-либо внешнего (в данном случае Ruby), это было бы лучше.


Изменить: «Производство» решение ... (надежность и удобство)

Следуя приведенным ниже инструкциям, приведенное выше решение может быть реализовано ...

Препятствие заключается в том, что закрытие Notepad ++ теряет конфигурацию консоли, поэтому его необходимо настраивать при каждом перезапуске.

Поэтому мы настроили конфигурацию консоли как скрипт, который запускается автоматически при каждом запуске Notepad ++.

Затем свяжите сочетание клавиш (горячие клавиши) со сценарием дневника для удобства.

Шаг 1: Введите код дневника в диалоговом окне NppExec Excute ...: Plugins > NppExec > Execute...присвоив ему имя (вы будете использовать это имя позже)

Step 1 - Enter diary code

Шаг 2: Введите код конфигурации setup_console аналогично:

Step 2 - Enter console configuration code

Шаги 3, 4, 5: В Plugins > NppExec > Advanced Options, установите setup_console для запуска при запуске (3), создайте элемент меню для кода дневника (4) и поместите элемент меню в Macroменю (5):

Steps 3,4,5 - Getting it all setup

Шаг 6: Установите горячую клавишу клавиатуры (ярлык) для сценария дневника: Settings > Shortcut Mapper... > Pluginsи прокрутите вниз, пока не найдете имя сценария дневника, которое вы использовали ...

Step 6 - Keyboard shortcut

Результат: заглянув под команду Macrosменю, вы увидите новую команду Timestamp с сочетанием клавиш.

Result - done

Готово!