Как упростить ввод текста в Обсидиане (плагин Typing transformer)
Основное #
Typing transformer — один из моих самых любимых плагинов в Обсидиане, без которых я абсолютно не могу обойтись. Однако его незаслуженно обходят вниманием — я ни разу не видела, чтобы кто-то о нём писал. Поэтому я решила написать небольшой обзор.
Что делает Typing transformer? Когда вы вводите какой-нибудь текст, он на ходу превращает его в другой текст. При этом превращение происходит по вашим собственным правилам, которые вы пропишете с настройках. Плагин можно использовать:
- чтобы вводить латинские буквы или редкие символы в русской раскладке;
- чтобы вводить длинные слова или сложные сочетания символов, нажав всего пару клавиш;
- чтобы автоматически удваивать парные символы, которые не поддерживаются Обсидианом (например, кавычки-ёлочки);
- чтобы делать любые другие автозамены, которые вы сможете придумать.
Плагин был разработан для китайского языка, но и с русским языком он работает прекрасно. Главное, после установки изменить некоторые настройки, потому что по умолчанию там прописаны китайские правила, которые могут ломать русский текст.
Как настроить плагин #
Прежде всего, я рекомендую отключить настройки «Auto format» и «Zone indicator».
Затем в разделе «Rules» удяляем все правила. Это китайские правила, которые нам не нужны. Вместо этого мы пропишем свои собственные правила. Их можно добавлять сколько угодно.
Правила пишутся с помощью очень простого синтактиса. К примеру, если мы хотим, чтобы слово «првт» автоматически превращалось в «привет», то пишем такую строку:
'првт|' -> 'привет|'
Обратите внимание на вертикальную черту. Она символизирует положение курсора и обязательно должна присутствовать. Мы можем переместить курсор в другое место. Например, если мы хотим, чтобы слово «првт» превращалось в «привет», но при этом курсор бы оказывался между «при» и «вет», то пишем такое правило:
'првт|' -> 'при|вет'
Это удобно для ввода парных символов вроде кавычек или скобок, потому что мы хотим, чтобы курсор оказывался между ними. Вот, например, реальное правило, которое я использую: при вводе трёх обычных кавычек они превращаются в кавычки-ёлочки с курсором посередине:
'"""|' -> '«|»'
Можно также прописать правила для быстрого удаления слов. Скажем, у нас есть слово «привет» и мы хотим, чтобы при удалении буквы «т» удалялось бы автоматически всё слово. Можно использовать такое правило (заметьте, что вместо стрелочки используются символы «-x»):
'привет|' -x '|'
Это тоже удобно использовать для парных символов. К примеру, у нас есть кавычки-ёлочки, и мы хотим, чтобы при удалении первой кавычки автоматически удалялась и вторая:
'«|»' -x '|'
Ещё можно прописать правило для оборачивания выделения в какие-то символы. Например, с помощью такого правила можно выделить текст, ввести букву «d», и текст автоматически обернётся в html-тэг div:
'd' -> '<div>' + '</div>'
Как видите, настройка очень простая, однако при прописывании правил нужно быть осторожнее. Автозамена срабатывает автоматически, не спрашивая пользователя, и отменить её нельзя. Поэтому нужно стараться не прописывать с левой стороны те сочетания символов, которые вам могут понадобиться сами по себе. Альтернативный метод — прописать дополнительные правила для обратного превращения.
К примеру, мы прописали правило, превращающее слово «првт» в «привет». Но что если нам понадобится написать именно «првт»? С существующим правилом это сделать довольно сложно. Но можно прописать дополнительное правило, которое будет превращать «привет» обратно в «првт» при добавлении какого-нибудь символа, скажем, звёздочки:
'привет*|' -> 'првт|'
Правила не поддерживают регулярные выражения, но можно использовать экранирование для некоторых символов (например, чтобы ввести вертикальную черту, нужно будет написать символы «\|»), а также можно использовать «\n» для обозначения перевода строки.
В плагине также можно настроить профили. Это разные режимы, в которых будут применяться разные правила и между которыми можно переключаться. Я не использую профили, но они могут быть полезны в некоторых случах. Например, если в каких-то заметках вы пишете много кода, можно включить профиль с автозаменами для кода, и отключать его при работе с другими заметками.
Мои правила #
Главная прелесть плагина в том, что можно настроить все правила под себя, в точности так, как тебе удобно вводить текст. Вот некоторые правила, которые я настроила для себя, и которые очень сильно упрощают мне жизнь. Я старалась придумывать правила так, чтобы они были интуитивно понятны и легко запоминались.
# Тройная кавычка превращается в кавычки-ёлочки.
'"""|' -> '«|»'
# Удаление первой ёлочки удаляет и вторую.
'«|»' -x '|'
# Обернуть выделение в кавычки-ёлочки (правила для выделения не поддерживают несколько символов, поэтому вместо кавычек используем двойку.
'2' -> '«' + '»'
# Заменить два минуса на тире.
'--|' -> '—|'
# Добавляем звёздочку, чтобы обратно превратить тире в два минуса (иногда нужно для написания кода).
'—*|' -> '--|'
# Тире и минус превращаются в три минуса.
'—-|' -> '---|'
# Вводим №№, чтобы получить #.
'№№|' -> '#|'
# Одинарный № после # тоже превращается в #, чтобы упростить ввод нескольких хэштэгов подряд (полезно для заголовков).
'#№|' -> '##|'
# Вводим четыре кавычки, чтобы получить @ (с учётом того, что три кавычки превращаются в ёлочки).
'«"|»' -> '@|'
# Доллар в русской раскладке (;;).
';;|' -> '$|'
# Шапочка в русской раскладке (:::).
':::|' -> '^|'
# Амперсанд в русской раскладке (??).
'??|' -> '&|'
# Вводим скобки в русской раскладке.
# «хх» превращается в двойные квадратные скобки.
'хх|' -> '[[|]]'
# Вводим звёздочку внутри крадратных скобок, чтобы отменить превращение.
'[[*|]]' -> 'хх|'
# Вводим х, чтобы обернуть выделенный текст в квадратные скобки.
'х' -> '[' + ']'
# Чтобы вставить внешнюю ссылку, можно ввести «хъ() », «хъ90» или «[]90». В первом случае нужен пробел после скобок, потому что плагин не понимает правил, заканчивающихся на скобку.
'хъ() |' -> '[|]()'
'хъ90|' -> '[|]()'
'[]90|' -> '[|]()'
# Чтобы обернуть текст во внешнюю ссылку, выделяем его и вводим 9.
'9' -> '[' + ']()'
# Вводим парные бэктики в русской раскладке (ёё для одинарных кавычек, ёёё для тройных).
'ёё|' -> '`|`'
'`ё|`' -> '```|\n```'
# Оборачиваем выделение в одинарные бэктики (выделить и ввести букву ё).
'ё' -> '`' + '`'
# Вводим тильды в русской раскладке(ЁЁ - одинарная тильда, ЁЁЁ — двойные парные тильды).
'ЁЁ|' -> '~|'
'~Ё|' -> '~~|~~'
# Оборачиваем выделение в одинарные тильды (выделить и ввести букву Ё).
'Ё' -> '~' + '~'
# Введение чекбоксов в русской и английской раскладке.
# Вводить чекбоксы довольно неудобно, потому что они состоят из пяти символов и легко можно забыть какой-нибудь пробел. Я прописала такие правила, чтобы можно было ввести всего несколько первых символов чекбокса, и даже без пробелов.
# Русская раскладка (вводим «- хъ» или просто «-х»).
'- хъ|' -> '- [ ] |'
'-х|' -> '- [ ] |'
# Если нам нужен текст «-х», то можно отменить превращение, удалив пробел после чекбокса и введя букву «х».
'- [ ]х|' -> '-х|'
# Английская раскладка: вводим «-[ », «- [ », «-[] », «- [] » (обязательно пробел после последней скобки).
'-[ |]' -> '- [ ] |'
'- [ |]' -> '- [ ] |'
'-[] |' -> '- [ ] |'
'- [] |' -> '- [ ] |'
# Упрощаем ввод знаков > и <.
# В русской раскладке «ЮЮ» превращается в «>», а «ББ» превращается в «<».
'ЮЮ|' -> '>|'
'ББ|' -> '<|'
# Быстрая вставка коллаута. Вводим «>..» или «>//», чтобы получить «>[!]».
'>..|' -> '>[!|]'
'>//|' -> '>[!|]'
# Чтобы напечатать вертикальную черту в русской раскладке, вводим обратную косую черту и пробел: «\ ».
'\ |' -> '\||'
# Я очень часто использую датавью, поэтому прописала правила для сокращённого ввода слов dataview и dataviewjs.
'```dv|' -> '```dataview|'
'```dj|' -> '```dataviewjs|'
Правил довольно много, но я статалась сделать так, чтобы в русской раскладке для ввода символов использовались те же клавиши, что и в английской, а сокращения были очевидны, поэтому в них не запутаешься, и легко привыкнуть ими пользоваться.