Paperless Forest

Как упростить ввод текста в Обсидиане (плагин Typing transformer)

#Obsidian #plugins

Основное #

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|'

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