Как записать макрос для Блокнота ++?

is - тестирование идентичности, == - проверка равенства. Это означает, что is - это способ проверить, являются ли две вещи одинаковыми вещами или просто эквивалентны.

Скажем, у вас есть простой объект person. Если он называется «Джек» и ему «23 года», он эквивалентен другому 23-летнему Джеку, но его не одному человеку.

class Person(object):
   def __init__(self, name, age):
       self.name = name
       self.age = age

   def __eq__(self, other):
       return self.name == other.name and self.age == other.age

jack1 = Person('Jack', 23)
jack2 = Person('Jack', 23)

jack1 == jack2 #True
jack1 is jack2 #False

Они того же возраста, не один и тот же экземпляр человека. Строка может быть эквивалентна другой, но это не тот же объект.

33
задан Igor Drincic 12 December 2008 в 10:43
поделиться

3 ответа

Макросы в Блокноте ++ являются просто набором закодированных операций: Вы начинаете записывать, воздействуете на буфер, возможно, активируя меню, прекращаете записывать, затем играют макрос.
После расследования, я узнал, что они сохраняются в файле shortcuts.xml в разделе Macros. Например, я имею там:

<Macro name="Trim Trailing and save" Ctrl="no" Alt="yes" Shift="yes" Key="83">
    <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
    <Action type="0" message="2327" wParam="0" lParam="0" sParam="" />
    <Action type="0" message="2327" wParam="0" lParam="0" sParam="" />
    <Action type="2" message="0" wParam="42024" lParam="0" sParam="" />
    <Action type="2" message="0" wParam="41006" lParam="0" sParam="" />
</Macro>

я не посмотрел на источник, но от взгляда, я сказал бы, что у нас есть сообщения, отправленные в Scintilla (компонент редактирования, возможно, тип 0 и 1), и к Блокноту ++ самому (вероятно, активирующий пункты меню).
я не думаю, что это запишет действия в диалоговых окнах (как поиск/замена).

Рассмотрение файл Scintilla.iface , мы видим, что 2170 код ReplaceSel (т.е. вставьте строку, ничто, выбран), 2327 команда Tab, и Хакер Ресурса (просто имеют его удобный...), показывает, что 42024 пункт меню "Trim Trailing Space", и 41006 "Сохранение".
я предполагаю, что тип 0 действия для команд Scintilla с числовыми параметрическими усилителями, тип 1 для команд со строковым параметром, 2 для Блокнота ++ команды.

проблема: Scintilla не имеет команды "Replace all": это - задача клиента сделать повторение, с или без подтверждения, и т.д.
Другая проблема: кажется, что действие типа 1 ограничено 1 символом (я отредактировал вручную, при выходе N ++ это было усеченным).
я попробовал некоторые приемы, но я боюсь, что такая задача вне макро-возможностей.

, Возможно, это - то, где SciTE с его Lua, пишущим сценарий способности (или Блокнот Программиста, который, кажется, scriptable с Python), имеет край... :-)

[РЕДАКТИРОВАНИЕ] Похож, я получил вышеупомянутый макрос от этот поток или подобное место... :-) Я предполагаю, что первые строки являются ненужными (побочный эффект или записывающий), но они были хорошими примерами макро-кода так или иначе.

49
ответ дан 27 November 2019 в 18:04
поделиться

Это сообщение может помочь Вам, как немного связано:

Используя RegEX К Префиксу И Добавляют В Блокноте ++

Принимающие алфавитно-цифровые слова, можно использовать:

Поиск = ^ ([A-Za-z0-9] +) Замена $ = способный: "\1"

Или, если Вы просто хотите выделить строки и использование, "Заменяют Все" & "В Выборе" (с той же заменой):

Поиск = ^ (. $ +)

^ указывает на запуск строки. $ указывает в конец строки.

\1 будет исходное соответствие в круглых скобках.

1
ответ дан 27 November 2019 в 18:04
поделиться

На самом деле, файл shortcuts.xml не хранит пользовательские макросы, и ни один очевидный кандидат не содержит этой информации. Эти инструкции устарели.

Вопреки советам различных веб-сайтов, хранение пользовательских макросов не включено для версии 5.4.2. Этот XML-файл есть, но ваш макрос не хранится в.

Думаю, это ошибка, которая будет исправлена в следующей версии.

.
-2
ответ дан 27 November 2019 в 18:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: