Замена цифр
Придумал тут штуку интересную. Как у я уже писал ранее, полюбилось мне что-то писать время с минутами в верхнем индексе. Для этого мне пришлось решить проблему ввода всего набора таких символов.
Сначала я сделал достаточно просто, — отредактировал раскладку, которой я пользуюсь. Мне не нравилось это решение, так как пришлось выкинуть из неё кое-какие полезные символы, которые мне бы тоже пригодились.
А сегодня мне пришло в голову решение лучше — попробовать обойтись функцией «Замены текста», которая встроена в «МакОСь». Мысль простая — заменять двоеточие и две цифры на то же самое, но без двоеточия и в верхнем индексе. Сначала я пытался набрать всё нужное руками, а потом случайно нашёл функцию импорта.
Формат для импорта оказался довольно простым. После того как я в нём разобрался, накидал небольшую программу на «Пайтоне», которая мне за мгновение сформировала нужный файл.
print("""
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>""")
trans = str.maketrans("0123456789", "⁰¹²³⁴⁵⁶⁷⁸⁹")
for i in range(0, 60):
print(f"""
<dict>
<key>phrase</key>
<string>{f"{i:02d}".translate(trans)}</string>
<key>shortcut</key>
<string>:{i:02d}</string>
</dict>""")
print("</array></plist>")
Чтобы его импортировать, нужно перейти в «Системные настройки…», оттуда в «Клавитуру», там нажать на кнопку «Замены текста…» и перетащить на открывшийся список получившийся файл.
После этого можно проверить что получилось, — если написать в любом месте «13:00», оно должно само преобразоваться в «13⁰⁰».
А как набирать https://localhost:60/ ?
А в чём проблема? «60» не заменяется, а если порт 59 и ниже, тогда просто нажать «Escape» после ввода и автозамены не случится.
Вместо двоеточия можно любой символ использовать, для меня э́тот символ удобен.
Логически, если в файл добавить условие замены только для русской раскладки. Если это возможно, конечно — я не программист.
А меня интересует такая фича под Винду.
К программированию замена такста отношения не имеет, эта фича для обычных пользователей. Я написал программу, чтобы вручную не вводить.
Про Винду ничего не могу сказать — не пользуюсь.
Чтобы написать программу, надо быть программистом. Соответственно, чтобы добавить в файл программы какие-либо условия и изменения, тоже надо быть программистом. А конечный результат, согласен, для обычных пользователей.
Если бы я был программистом, то написал бы себе похожее для Винды. Еще интересно, можно ли сделать верхний индекс подчеркнутым? Так симпатичнее: https://whal.ru/img/134352.png
Программа нужна только чтобы кнопки вручную не жать для ввода всех необходимых последовательностей в интерфейс операционной системы.
А интерфейс замены текста умеет только заменять одну последовательность на другую, это всё. Подчеркнуть, думаю, можно, но будет ли везде это нормально отображаться везде — непонятно.
Добавлено: попробовал. Как я и предполагал, кое-где с отображением есть проблемы.
А эта замена текста не через регулярки работает? Так бы можно было через (?<:\b\d{1,2}) попробовать.
Ну и да, это всё одноразовое. Поиском потом не найти. Вернее какие-то программы способны понять что ⁰ это 0, какие-то нет. И как время оно не парсится из-за отсутствия двоеточия.
Нигде не видел упоминания, что там можно регулярки, да и сомневаюсь я — ведь это для обычных пользователей сделано. По поводу поиска — я что-то ни разу в жизни не искал время в чатах.
Да, мы уже в прошлый раз обсуждали этот момент, про поиск.
Единственное, что мне сходу подумалось — это какие-нибудь боты в групповых чатах, которые бы отлавливали время в сообщениях и как-то составляли расписание, но думаю тут можно и вручную отменить замену. Да и ситуация синтетическая.