Який найпростіший спосіб вставити символи Unicode в документ?


28

Під час написання документів час від часу я хочу вставити символи Unicode. Іноді я знаю код символу, а іноді шукаю його в Інтернеті.

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


Інше питання - це справді "особливий випадок" цього більш загального питання; відповіді будуть однаковими ... Мій коментар також стосується: Використовуйте засоби ОС (якими б вони не були), або якусь іншу програму для ОС (для Examplle, коли я використовував Windows, мені подобалося використовувати AllChars, що імітує X11 Створити ключ; він працює у всіх програмах).
— Мартін Турноїй

Так, це особливий випадок, і відповіді спеціалізовані на це. Ви не вважаєте, що може бути більш узагальнене рішення, яке охоплює більше речей, про які люди не враховували, дивлячись на особливий випадок.
— Мартін Йорк

Ми також могли б зробити це питання більш загальним або відзначити, що це дурня цього (навіть якщо це було раніше); Я дійсно не дбаю як такої . Але я не думаю, що виникнення обох питань, як є, допоможе комусь у довгостроковій перспективі :-)
— Martin Tournoij

Якби я міг контролювати світ. Можливо, ми повинні дати йому простояти день-два, щоб, якщо зібрали якісь унікальні відповіді, які могли б відрізнити це від іншого питання. Якщо він не відповідає або відповіді є лише дублікатами, закрийте / видаліть його.
— Мартін Йорк

Гаразд .. Я, безумовно, погоджуюся, що на інше питання немає чудових відповідей, і це питання має привернути кращих (сподіваємось) ... Відредагування іншого питання (щоб зробити його більш загальним) все ще залишає його з купою високо цінуваних відповіді, які стосуються лише ем тире, тож це теж не чудово ... Тож я відмовився від свого близького голосування, і як тільки це отримає якісь гідні відповіді, я проголосую за іншу дурапу цього (навіть якщо це було раніше) ... Я, звичайно, не можу контролювати те, що обирають інші.
— Мартін Турноїй

Відповіді:


23

Передмова : Це не має нічого спільного з Vim як таким, але я покажу вам, що я вважаю "найкращим" способом вставити цих персонажів далеко; Система диграфів Vim майже або однакова, але вона працює лише з Vim. Це буде працювати у всіх програмах.

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

Нижче наводиться (частина) проекту статті у веб-журналі, яку я переглядаю. На жаль, справді вичерпного посібника не існує (поки що), і наведене нижче не описує всі функції, які він пропонує (наприклад, деякі частини про мертві клавіші відсутні), і в деяких частинах вони можуть бути краще написані, але я думаю, що це все ще "досить корисний".


А «Compose послідовність» віджимає Composeключ , а потім один або кілька символів , щоб зробити який- то символ не знайдено на клавіатурі, наприклад, натискання Compose, відразу після "і aможе призвести ä.

За замовчуванням Composeне прив’язаний до жодної клавіші 1 ; Права Altклавіша (ака. 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

Ви також можете встановити композиційний ключ як опцію 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 (Див. розділ Ключі).

Слідом за ним :, а за ним результат.

Результат:

<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

Примітка . Файл 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

С оболонка:

# 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, Organisation); 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. Обмеження композиції полягає в тому, що ви не можете мати запам'ятовуючу комбінацію, щоб охопити всіх персонажів, лише тих, якими ви користуєтесь часто, або які мають логічне розкладання.
— Жил "ТАК - перестань бути злим"

@Gilles Спасибі; WinCompose виглядає приємно. Ви маєте рацію, що можете вводити лише досить обмежений набір "найбільш вживаних" символів. Для мене цього достатньо> 95% часу. В іншому я використовую UniView ... Я нічого не знаю нічого кращого ...
— Martin Tournoij

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

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

@dotancohen Це схоже на іншу проблему (як у запиті про функції).
— Мартін Турноїй

20

Для вставки символів Unicode, таких як символи євро чи авторських прав, або діакритичних знаків, таких як німецький умлаут або могила акценту, digraphsможна використовувати.

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

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

Коли для параметра gragraph встановлено ( :set dg), ви також можете використовувати наступний метод:

  • aBackspace:за ä, EBackspaceuза €тощо.

Для переліку поточно визначених типів фотографій введіть: :digraphs( :dig).

Джерело: Введення спеціальних символів на сайті Vim Wikia .


ОС 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) або digarphs ( :h i_CTRL-X_CTRL_G)

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


3

На додаток до використання заздалегідь визначених диграфів (Виконати, :digщоб отримати список), ви також можете визначити свої власні діаграми in 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.