Чтобы вставить тире , я использую ^v u 2014
семь нажатий клавиш. Есть ли более простой способ? (Я смотрел на орграфы и не нашел там тире.)
insert-mode
unicode
input-methods
Томас Томечек
источник
источник
<Ctrl-Shift-U>2013<Space>
потому что он работает везде. Несколько кодов клавиш имеют большое значение (я в основном использую U + 2013, U + 2014, U + 2026, U + 2212, U + 2192, U + B0; - / - /… / - / → / °).Compose
-
-
-
для тире,Compose
-
-
.
для тире. Compose является волшебным, особенно если вы сопоставляете его с совершенно неиспользуемым Caps-Lock.Ответы:
Вы можете использовать орграфы: Ctrl+k-N(с большой буквы
N
)В режиме вставки вводятся орграфы, Ctrl+kза которыми следует двухсимвольная последовательность. Для en-dash последовательность такова
-N
.Как указал Куинси,
U+2014
это эм-тире. Если вы хотите ввести это с помощью орграфов, последовательность будет-M
.источник
U+2014
это не en-dash? Вся моя жизнь была ложью! Редактировать: теперь я понял: мой терминальный шрифт (Inconsolata) отображает обе черты одинаково.:digraphs
команду для отображения всехЕсли нет предопределенного орграфа или вам нужна более запоминающаяся последовательность клавиш, вы можете определить орграфы в вашем vimrc. Например, ниже будут определены два орграфа для en dash (8211) и em dash (8212), которые отражают их последовательности XCompose.
Команда
:digraph
ожидает, что значение будет указано в десятичном, а не в шестнадцатеричном формате, поэтому это 8211 для пробела, а не 2013 года.источник
Как объяснил tommcdo, стандартный способ вставки черты en в Dim - использование орграфа .
Тем не менее, я считаю диграфов в целом, и в частности , это один ( Ctrl+k, -, Shift+N) довольно неудобно набирать. Для более быстрого ввода тире можно добавить следующую пару сопоставлений режима вставки в файл типа файла, например
.vim/after/ftplugin/markdown.vim
.Для тире en / em соответственно:
NB
<buffer>
означает, что это сопоставление будет применяться только к файлам Markdown. Это необходимо, потому что есть некоторые контексты (например, программирование), где я не хочу, чтобы два дефиса были заменены тире.Эти отображения используют тот факт, что в тех случаях, когда я их обычно использую, все тире окружены пробелами, а тире нет . * Использование этих сопоставлений, следовательно, означает, что я могу использовать точно такие же нажатия клавиш в менее способных текстовых редакторах, которые я иногда вынужден использовать, и все же получаю разумный вывод. **
На самом деле я использую немного более сложное решение, чем приведенное выше, потому что по типографским причинам мне нравится окружать мои штрихи волосами . Наличие их в Markdown делает его менее читабельным, но, к счастью, у Vim есть решение для этого с его функцией «скрытия», которая позволяет скрывать определенные элементы синтаксиса, когда курсор находится на другой строке: ***
* Если мне когда-либо понадобится использовать пробел без пробелов, то я могу просто нажать клавишу Backspace после ввода сопоставления.
** Если вы обычно не пользуетесь такими черточками, как это, или если вы никогда не выходите из Vim, вы можете использовать что-то еще для запуска отображений: например,
--.
и---
. Если вы используете другие триггеры, вы также можете поместить это прямо в ваш .vimrc и удалить<buffer>
опции.*** Вы также можете использовать скрытый символ,
cchar
чтобы заменить элементы синтаксиса одним символом, вместо того, чтобы скрывать их полностью. Если вы беспокоитесь о проблемах кодирования, вы можете использовать это, чтобы Vim отображал–
HTML-объекты в файле в виде черточек.источник
set conceallevel=1 | syntax match longdash '—' conceal cchar=-
(Обратите внимание, что первая черта в этой команде - это тире, а вторая - дефис-минус с полной шириной.)syntax match
команда работать даже вне контекста файла синтаксиса?На моей французской клавиатуре AZERTY Mac я могу вставить черточку с Alt+ -. Ваш пробег, очевидно, может варьироваться.
источник
Alt+-
(или, скорее,Option+-
чтобы быть педантичным) это ярлык для Mac. Он работает везде в OS X, но не имеет отношения к vi или vim.-
чего переключается в обычный режим и помещает курсор в начало предыдущей строки.Установите мой плагин Unicode , введите Vim и введите DASH, а затем CtrlXCtrlZактивировать завершение Unicode.
(Обратите внимание на -N в описании, которое показывает орграф для ввода этого символа)
источник
Вдохновленный великим ответом Рича, я добавил следующие строки в мой vimrc:
Работает как удовольствие!
источник
Для en dash орграф - лучший путь, как предложено в различных других ответах. Но для произвольных символов Юникода другой способ заключается в использовании
^V
в режиме вставки (см.:he i_CTRL-V_digit
).Например, для тире
^Vu2013
.источник