Привет всем, с вами еженедельная рубрика "Секреты Вим"! Сегодня обсудим очень полезную возможность: вставку в текст различных символов. В их числе буквы с акцентами (à), буквы греческие (β), арабские (ﺭ) и ивритские (א), ну и разные символы вроде градуса (90°). Есть японские слоговые азбуки (あ, ア), карточные масти (♠♡♢♣ ), символы нот (♩♪♫), мужской и женский (♂ +♀=♡), смайлики (☺☻), кое-какая математика (интеграл ∫, корень √, неравенства ≥ и др., бесконечность ∞ и многое другое).
Называется это диграфы, потому что символ кодируется двумя. Конечно, можно ввести символ по его коду, но кто помнит эти коды? Диграфы удобнее, и можно определить свои, если вам нужен непредусмотренный символ и вы знаете его код.
Есть два способа ввести диграф. Один — это <C-K> A B, где А и В — это символы, кодирующие диграф. Например, 00 — это символ ∞. Контрол+К, затем два раза 0 — и в тексте знак бесконечности.
Второй способ удобнее, если вам надо много диграфов. Он включается опцией set digraph и имеет вид А <BS> B. Например, 0 "клавиша backspace" 0 вставит бесконечность. Это проще, но вы теряете возможность стереть неправильно введенный символ.
Посмотреть все диграфы позволяет команда :digraphs. Со временем вы запомните те, которыми пользуетесь, тем более, что в них есть некоторая логика.
Кстати, если диграфа АВ нет, а есть диграф ВА — то Вим поймет, что Вы хотели.
Есть несколько общих правил. Так, акценты всегда задаются как !A (À), 'A (Á) и так далее. Кириллица задается через =, например А= даст букву Ф; однако куда им до нас, так что есть кое-что еще, например JA даст букву Я, а ja ее же в нижнем регистре. Звездочка * служит для греческих букв, а + — для арабских и иврита (нижний регистр — для арабов, верхний — для евреев). Цифры 5 и 6 — для японцев (хирагана и катакана).
Для рубля есть целых два диграфа! Это =R и =P. Для заглавной Р служит R=. А для евро есть диграф =e.
Можно определять свои диграфы: digraphs AB код.
Полагаю, не стоит напоминать, что вставлять символы с кодами выше 255 в текст в однобайтовой кодировке — плохая идея? В лучшем случае Вим откажется сохранять, в худшем в тексте будет не совсем то, что вы планировали. В UTF8 — все нормально.
Еще имейте в виду, что не во всех шрифтах есть все символы Юникода! Поэтому, определяя свои диграфы, убедитесь, что символ есть.
Теперь я перечислю несколько диграфов, которыми часто пользуюсь сам:
RT √, In ∫, != ≠, 00 ∞, греческие буквы, =3 ≡, =< ≤, >= ≥, <* ≪, *> ≫, !< ≮, !> ≯, (C ⊂, FA ∀, dP ∂, TE ∃, %0 ‰, DG °, +- ± , -+ ∓, Sb ∙, cO ©, ~o °, 0u и 0U — это ☺ и ☻ (грустных я не нашел, что и правильно). Масти: cC ♣, cD ♢, cH ♡, cP ♠.
Конечно, в Техе и не такое доступно и надо пользоваться командами, а в Либре есть вставка спецсимволов; но бывает полезно.
Когда надо набрать пару фраз на итальянском, пригождаются акценты (! и '); изредка нужен иврит (но диграфами что-то длинее שלום набрать тяжело))).
Enjoy!