Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

Замена цифр

Придумал тут штуку интересную. Как у я уже писал ранее, полюбилось мне что-то писать время с минутами в верхнем индексе. Для этого мне пришлось решить проблему ввода всего набора таких символов.

Сначала я сделал достаточно просто, — отредактировал раскладку, которой я пользуюсь. Мне не нравилось это решение, так как пришлось выкинуть из неё кое-какие полезные символы, которые мне бы тоже пригодились.

А сегодня мне пришло в голову решение лучше — попробовать обойтись функцией «Замены текста», которая встроена в «МакОСь». Мысль простая — заменять двоеточие и две цифры на то же самое, но без двоеточия и в верхнем индексе. Сначала я пытался набрать всё нужное руками, а потом случайно нашёл функцию импорта.

Формат для импорта оказался довольно простым. После того как я в нём разобрался, накидал небольшую программу на «Пайтоне», которая мне за мгновение сформировала нужный файл.

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⁰⁰».

Ctrl →UTM
5 комментариев
hsh 14 дн

А как набирать https://localhost:60/ ?

Евгений Степанищев 14 дн

А в чём проблема? «60» не заменяется, а если порт 59 и ниже, тогда просто нажать «Escape» после ввода и автозамены не случится.

Вместо двоеточия можно любой символ использовать, для меня э́тот символ удобен.

Владимир Новицкий 14 дн

А как набирать https://localhost:60/ ?

Логически, если в файл добавить условие замены только для русской раскладки. Если это возможно, конечно — я не программист.

А меня интересует такая фича под Винду.

Евгений Степанищев 14 дн

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

Про Винду ничего не могу сказать — не пользуюсь.

Владимир Новицкий 13 дн

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

Чтобы написать программу, надо быть программистом. Соответственно, чтобы добавить в файл программы какие-либо условия и изменения, тоже надо быть программистом. А конечный результат, согласен, для обычных пользователей.

Если бы я был программистом, то написал бы себе похожее для Винды. Еще интересно, можно ли сделать верхний индекс подчеркнутым? Так симпатичнее: https://whal.ru/img/134352.png

Евгений Степанищев 13 дн

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

А интерфейс замены текста умеет только заменять одну последовательность на другую, это всё. Подчеркнуть, думаю, можно, но будет ли везде это нормально отображаться везде — непонятно.

Добавлено: попробовал. Как я и предполагал, кое-где с отображением есть проблемы.

Константин Романов 10 дн

А эта замена текста не через регулярки работает? Так бы можно было через (?<:\b\d{1,2}) попробовать.

Ну и да, это всё одноразовое. Поиском потом не найти. Вернее какие-то программы способны понять что ⁰ это 0, какие-то нет. И как время оно не парсится из-за отсутствия двоеточия.

Евгений Степанищев 10 дн

Нигде не видел упоминания, что там можно регулярки, да и сомневаюсь я — ведь это для обычных пользователей сделано. По поводу поиска — я что-то ни разу в жизни не искал время в чатах.

Константин Романов 9 дн

Да, мы уже в прошлый раз обсуждали этот момент, про поиск.

Единственное, что мне сходу подумалось — это какие-нибудь боты в групповых чатах, которые бы отлавливали время в сообщениях и как-то составляли расписание, но думаю тут можно и вручную отменить замену. Да и ситуация синтетическая.