Какой самый простой способ вставить символы Unicode в документ?


28

При написании документов иногда я хочу вставлять символы Unicode в текст. Иногда я знаю код символа, а иногда я ищу его в Интернете.

В настоящее время я иду, чтобы вставить режим, а затем использовать <Ctrl-V>u{four digit hex number}, который может быть очень трудоемким. Есть ли более простой способ вставки символов (возможно, какая-то форма вставки)?


Другой вопрос - действительно «особый случай» этого более общего вопроса; ответы будут такими же ... Мой комментарий там также применим: используйте средства вашей ОС (какими бы они ни были) или какую-то другую программу для всей ОС (например, когда я использовал Windows, мне нравилось использовать AllChars, который эмулирует X11). Составьте ключ, он работает во всех программах).
— Мартин Турной

Да, это особый случай, и ответы для него специализированы. Не думаете ли вы, что может быть более обобщенное решение, которое включает в себя больше вещей, которые люди не учитывали при рассмотрении особого случая.
— Мартин Йорк,

Мы могли бы также сделать этот вопрос более общим или отметить, что этот вопрос является дублирующим (хотя это было раньше); Я действительно не забочусь как таковой . Но я не думаю, что оба эти вопроса помогут кому-то в долгосрочной перспективе :-)
— Мартин Турной

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

Хорошо .. Я , безусловно , согласен другой вопрос не имеет большие ответы, и этот вопрос должен привлечь лучших из них (надеюсь) ... Редактирование другой вопрос (чтобы сделать его более общий характер ) все еще оставляет его с кучей весьма upvoted ответы, которые касаются только тире em, так что это тоже не здорово ... Так что я отозвал свой закрытый голос, и, как только он получит несколько приличных ответов, я проголосую за другого или просто за это (хотя это было раньше) ... Я, конечно, не могу контролировать то, что другие люди выбирают для голосования.
— Мартин Турной

Ответы:


23

Предисловие : Это не имеет никакого отношения к Vim как таковому, но я покажу вам, что я считаю «лучшим» способом вставки этих символов на сегодняшний день; Система управления графиком в Vim примерно такая же, но она работает только с Vim. Это будет работать во всех приложениях.

Это будет работать только для систем X11 (Linux, BSD и т. Д.). Для Windows есть AllChars . Он не обновлялся некоторое время, но я могу подтвердить, что он хорошо работает с Windows 7 (использовал его на моей предыдущей работе). Я считаю, что OS X также имеет хорошие возможности для этого, встроенные в ОС; если вы используете OS X, я рекомендую вам проверить их, но так как я никогда не использовал OS X, я не могу указать вам на них.

Ниже приведена (часть) черновая статья в блоге, которую я готовлю. К сожалению, действительно всеобъемлющего руководства не существует (пока), и ниже не описываются все функции, которые оно предлагает (например, некоторые части о мертвых ключах отсутствуют), и его можно было бы лучше написать в некоторых частях, но я думаю, что это все еще "достаточно полезно".


«Составить последовательность» - это нажатие Composeклавиши, а затем одного или нескольких символов, чтобы создать какой-либо символ, которого нет на вашей клавиатуре, например, нажатие Compose, сразу за которым следует "и aможет вызвать ä.

По умолчанию Composeне привязан ни к одной клавише 1 ; Правая Altклавиша (aka. Alt Gr) часто используется, но вы устанавливаете ее на любую клавишу, которую хотите.

Установите его с помощью xmodmap

Вы можете использовать xmodmap для установки этого:

$ xmodmap -e 'keysym Alt_R = Multi_key'     # Set it right Alt
$ xmodmap -e 'keysym Caps_Lock = Multi_key' # Set it to Caps Lock
$ xmodmap -e 'keysym F12 = Multi_key'       # You're free to use *any* key, like F12

Вы, вероятно, хотите добавить это в свой ~/.Xmodmapфайл 2 :

! Set compose key
keysym Alt_R = Multi_key

Установите его с помощью XKB

Вы также можете установить ключ compose в качестве опции для XKB с помощью setxkbmap:

setxkbmap -option compose:ralt  # Right alt
setxkbmap -option compose:caps  # Caps Lock

Чтобы сделать их постоянными, добавьте команду в файл запуска X или, в качестве альтернативы, вы также можете установить ее в /etc/X11/xorg.conf:

Section "InputDevice"
    Identifier "Keyboard0"
    Driver "kbd"
    Option "XkbOptions" "compose:ralt"
    #Option "XkbOptions" "compose:caps"
EndSection

Или, в более «современном» стиле, вы можете создать файл /etc/X11/xorg.conf.d/90-compose.conf:

Section "InputClass"
    Identifier "Set compose key"
    MatchIsKeyboard "on"
    Option "XkbOptions" "compose:ralt"
EndSection

Список возможных значений можно найти в xkeyboard-config(7)разделе «Положение клавиши Compose» 3 .

Настройка мертвых ключей

Мертвый ключ используется главным образом для добавления акцента или диакритического знака к букве (например, умлаут, могила акцента и т. Д.), Хотя его можно использовать для создания любого символа. Это работает ... TODO '

keycode 133 = dead_greek NoSymbol SuperR

http://zuttobenkyou.wordpress.com/2011/08/24/xorg-using-the-us-international-altgr-intl-variant-keyboard-layout/
http://stackoverflow.com/questions/14922007/how-to-enter-greek-alpha-under-xor
keycode 48 = dead_grave apostrophe


<dead_grave> <space>       : "`"   grave # GRAVE ACCENT
<dead_grave> <dead_grave>  : "`"   grave # GRAVE ACCENT
<dead_grave> <a>           : "À"   agrave # LATIN CAPITAL LETTER A WITH GRAVE

Создание файла ~ / .XCompose

По умолчанию файл Compose ~/.XComposeотсутствует /usr/share/X11/locale/$LANG/Compose. Наличие ваших собственных ~/.XComposeпереопределяет значение по умолчанию, но вы все равно можете включить значение по умолчанию с помощью:

include "%L"

Изменения любого файла Compose вступают в силу при перезапуске приложения. Вам не нужно перезапускать X.

Составить ключ

«Составьте последовательность» - нажмите Composeклавишу, а затем один или несколько символов, чтобы получить какой-либо символ, например:

<Multi_key> <quotedbl> <a> : "ä" adiaeresis

Означает, что нажатие Composeсразу следует "и aвыдает ä.

<Multi_key>обозначает, что мы используем Composeключ. затем мы следуем за этим списком из одного или нескольких ключей, которые должны быть keysyms, которые являются символическими представлениями ключей, используемых X (см. раздел Keysyms).

Затем следует результат :, за которым следует результат.

Результат:

<Multi_key> <a>          :  "ä" adiaeresis
<Multi_key> <b> <b>      :  "ä" adiaeresis
<Multi_key> <c> <c> <c>  :  "ä" adiaeresis
<Multi_key> Alt <d>      :  "ä" adiaeresis
<Multi_key> Ctrl <e>     :  "ä" adiaeresis

Примечание : A Compose файл чувствителен к регистру, поэтому Aэто не то же самое , как a.

Мертвые ключи

СДЕЛАТЬ

Заставь это работать в GTK & Qt

Установите переменные среды GTK_IM_MODULE& QT_IM_MODULEв xim.

Оболочка Борна:

# Make compose key work for GTK, Qt
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim

C оболочка:

# Make compose key work for GTK, Qt
setenv GTK_IM_MODULE xim
setenv QT_IM_MODULE xim

Смотрите также

мой ~/.XCompose

Это то, ~/.XComposeчто я использую ; Я использовал скрипт для генерации этого, но я случайно переписал это при компиляции> _ <Так что мне нужно переписать его.

Также обратите внимание на эту строку:

<Multi_key> <i> <b> : "NL65AEGO0721647952"

Нажатие Compose ibвставит эту строку (случайный тестовый номер IBAN); очень полезно для тестирования приложений, где такое число требуется для создания какого-либо объекта (Person, Organization); XCompose также может служить инструментом «сниппет» :-)

Сноски

1: У некоторых клавиатур UNIX была выделенная Composeклавиша ( например, это SUN ), но в наши дни это довольно редко.

2: В зависимости от вашей существующей настройки, это может или не может быть прочитано при запуске, в зависимости от вашей конфигурации, добавьте строку xmodmap ~/.Xmodmapв ~/.xinitrcили ~/.xsession; также смотрите ArchLinux вики .

3: Воспроизводится для вашей выгоды:

    Position of Compose key
    +------------------------------------------------------+
    |Option                Description                     |
    +------------------------------------------------------+
    |compose:ralt          Right Alt                       |
    |compose:lwin          Left Win                        |
    |compose:lwin-altgr    3rd level of Left Win           |
    |compose:rwin          Right Win                       |
    |compose:rwin-altgr    3rd level of Right Win          |
    |compose:menu          Menu                            |
    |compose:menu-altgr    3rd level of Menu               |
    |compose:lctrl         Left Ctrl                       |
    |compose:lctrl-altgr   3rd level of Left Ctrl          |
    |compose:rctrl         Right Ctrl                      |
    |compose:rctrl-altgr   3rd level of Right Ctrl         |
    |compose:caps          Caps Lock                       |
    |compose:caps-altgr    3rd level of Caps Lock          |
    |compose:102           <Less/Greater>                  |
    |compose:102-altgr     3rd level of <Less/Greater>     |
    |compose:paus          Pause                           |
    |compose:prsc          PrtSc                           |
    |compose:sclk          Scroll Lock                     |
    +------------------------------------------------------+

1
Для Windows используйте Wincompose вместо Allchars. Он делает именно то, что говорит на банке. Я использовал Allchars, пока не нашел Wincompose. Ограничение композиции состоит в том, что у вас не может быть запоминающейся комбинации, чтобы охватить все символы, только те, которые вы часто используете или которые имеют логическую декомпозицию.
— Жиль "ТАК ... перестать быть злым"

@ Жиль Спасибо; WinCompose выглядит красиво. Вы правы, что вы можете ввести только довольно ограниченное подмножество «наиболее используемых» символов. Для меня этого достаточно> 95% времени. В остальном я использую UniView ... Я не знаю ничего значительно лучше ...
— Мартин Турной

Для редко используемых символов я использую Shapecatcher (нет интеграции с редактором, о которой я знаю) или я набираю имя символа ( C-x 8 RETв редакторе, который не является vi, я не знаю, есть ли в Vim что-то похожее).
— Жиль "ТАК ... перестать быть злым"

1
Пользователи KDE не могут использовать этот метод, поскольку KDE передает ответственность за реализацию этой функции в Xorg , а Xorg переводит в Qt , а Qt отправляет обратно в Xorg . Я обсуждаю это на своей странице о наборе текста RTL .
— dotancohen

@dotancohen Это похоже на другую проблему (как, например, запрос функции).
— Мартин Турной

20

Для вставки символов Юникода, таких как символы евро или авторского права, или диакритических знаков, таких как германская умлаут или акцентная могила, digraphsможно использовать.

Например, в режиме вставки нажмите Ctrl+ kи введите следующее:

  • Испанский: a'для á, E'для É, n?для ñ, для ,
  • Немецкий: a:для ä, ssдля ß,
  • другие акцентированные буквы: a!для à, a>для, âдля ê, a?для ã,
  • Греческий: a*для α(альфа), b*для β(бета), g*для γ(гамма), d*для δ(дельта).
  • квадратные номера: 22для ², 33или³
  • валюты: Euдля €(евро), Pdдля £(фунт),
  • Coдля ©(Авторское право), DGдля °(Степень),
  • OKдля ✓, XXдля ✗, Sbдля ∙(пули),
  • знаки пунктуации: -Nfor –(en dash), -Mfor —(em dash)

Когда опция digraph установлена ​​( :set dg), вы также можете использовать следующий метод:

  • aBackspace:для ä, EBackspaceuдля €и т. д.

Чтобы получить список определенных диграфов, наберите: :digraphs( :dig).

Источник: ввод специальных символов на сайте Vim Wikia .


OS X

Если вы используете OS X, очень легко набирать акцентированные буквы в любом месте следующим способом:

  • Option+ e, То aдля á, eдля é, iдля íи подобное,
  • Option+ n, то aдля ã, nдля ñи подобных,
  • Option+ u, то uдля ü,
  • знаки препинания: Option+ 1для ¡, Option+ Shift+ ?для ¿,

Смотрите также:


6

Мой плагин Unicode позволяет легко вводить символы Unicode. Конкретно это позволяет

  • :Digraph <name> - Поиск орграфов для персонажа

  • :UnicodeTable - отображает таблицу символов

  • :UnicodeName - Определить символ под курсором

  • Завершение символов с использованием их имен или значений из таблицы Unicode ( :h i_CTRL-X_CTRL-Z) или дигарфов ( :h i_CTRL-X_CTRL_G)

Прочтите справку для получения дополнительной информации о том, как использовать мой плагин.


3

В дополнение к использованию предопределенных орграфов (Выполнить, :digчтобы получить список), вы также можете определить свои собственные орграфы в vim:

:digr e: 235 a: 228

Смотрите также: http://vimdoc.sourceforge.net/htmldoc/digraph.html


3

Для часто используемых символов :digraphили внешних средств, таких как упомянутый ключ Compose , отлично. Для редко используемых я определяю сокращения, как это:

norea <unique> unicode_smiley 😃
norea <unique> unicode_skull ☠

А затем используйте мой плагин SnippetComplete, чтобы получить всплывающее меню, в котором перечислены все такие сокращения, например:unicode_<C-x>]

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.