Qual é a maneira mais fácil de inserir caracteres Unicode em um documento?

28

Ao escrever documentos ocasionalmente, desejo inserir caracteres Unicode no texto. Às vezes, conheço o código do personagem e, às vezes, procuro na web.

Atualmente, vou para o modo de inserção e depois uso <Ctrl-V>u{four digit hex number}, o que pode ser muito trabalhoso. Existe uma maneira mais fácil de inserir os caracteres (talvez alguma forma de colar)?

Martin York
fonte
A outra questão é realmente um "caso especial" dessa questão mais genérica; as respostas serão as mesmas ... Meu comentário também se aplica: Use as instalações do seu sistema operacional (sejam elas quais forem) ou algum outro programa em todo o sistema operacional (por exemplo, quando eu usei o Windows, eu gostava de usar o AllChars que emula o X11 Tecla de composição; funciona em todos os programas).
Martin Tournoij 26/02
Sim, esse é um caso especial e as respostas são especializadas para isso. Você não acha que pode haver uma solução mais generalizada que englobe mais coisas que as pessoas não consideraram ao examinar o caso especial.
Martin York
Também poderíamos tornar essa pergunta mais genérica ou marcar que essa é uma fraude dessa (mesmo que fosse anterior); Eu realmente não me importo como tal . Mas eu não acho que ter ambas as perguntas, pois é vai ajudar alguém a longo prazo :-)
Martin Tournoij
Se eu pudesse controlar o mundo. Talvez devêssemos esperar um ou dois dias, para que se reunisse respostas únicas que pudessem distingui-lo da outra pergunta. Se permanecer sem resposta ou as respostas forem apenas duplicadas, feche / exclua.
Martin York
Tudo bem .. Eu definitivamente concordo que a outra pergunta não tem ótimas respostas, e essa pergunta deve atrair outras melhores (espero) ... A edição da outra pergunta (para torná-la mais genérica) ainda deixa com um monte de votos altamente votados respostas que lidam apenas com o travessão em, então isso também não é ótimo ... Então, retirei meu voto próximo e, assim que isso obtiver algumas respostas decentes, votarei no outro em uma brincadeira dessa (embora foi antes) ... é claro que não posso controlar o que as outras pessoas escolhem votar.
Martin Tournoij

Respostas:

23

Prefácio : Isso não tem nada a ver com o Vim, mas mostrarei o que considero ser a "melhor" maneira de inserir esses caracteres de longe; O sistema de digrafos do Vim é mais ou menos o mesmo, mas só funciona com o Vim. Isso funcionará em todos os aplicativos.

Isso funcionará apenas para sistemas X11 (Linux, BSD etc.). Para Windows, há AllChars . Não foi atualizado há algum tempo, mas posso confirmar que funciona bem com o Windows 7 (usei no meu trabalho anterior). Acredito que o OS X também tenha boas instalações para fazer isso embutido no SO; se você usa o OS X, incentivo você a vê-los, mas como nunca usei o OS XI, não posso apontar para eles.

O abaixo é (parte de) um artigo preliminar do blog que eu tenho no pipeline. Infelizmente, ainda não existe um guia realmente abrangente, e o abaixo não descreve todos os recursos que ele oferece (por exemplo, faltam algumas partes sobre chaves mortas) e poderia ser melhor escrito em algumas partes, mas acho que é ainda "útil o suficiente".


Uma 'sequência de composição' está pressionando a Composetecla e, em seguida, um ou mais caracteres para produzir algum caractere não encontrado no teclado, por exemplo, pressionando Compose, seguido imediatamente por "e apode produzir um ä.

Por padrão, Composenão está vinculado a nenhuma chave 1 ; a Alttecla direita (também conhecida como Alt Gr) é frequentemente usada, mas você a define como qualquer chave que desejar.

Defina-o usando xmodmap

Você pode usar xmodmap para definir isso:

$ 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

Você provavelmente deseja adicionar isso ao seu ~/.Xmodmaparquivo 2 :

! Set compose key
keysym Alt_R = Multi_key

Defina usando XKB

Você também pode definir a chave de composição como uma opção para XKB com setxkbmap:

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

Para torná-los permanentes, adicione o comando ao seu arquivo de inicialização do X ou, como alternativa, você também pode configurá-lo em /etc/X11/xorg.conf:

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

Ou, em um estilo mais 'moderno', você pode criar um arquivo /etc/X11/xorg.conf.d/90-compose.conf:

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

Uma lista de valores possíveis pode ser encontrada na xkeyboard-config(7)seção 'Posição da tecla de composição' 3 .

Configurando chaves mortas

Uma chave morta é usada principalmente para adicionar um sotaque ou diacrítico a uma letra (como trema, túmulo de sotaque etc.), embora possa ser usada para criar qualquer personagem. Funciona por ... 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

Criando um arquivo ~ / .XCompose

O arquivo de composição padrão, se ~/.XComposeestiver ausente, é /usr/share/X11/locale/$LANG/Compose. Ter o seu próprio ~/.XComposesubstitui o padrão, mas você ainda pode incluir o padrão com:

include "%L"

As alterações em qualquer arquivo de composição entram em vigor quando você reinicia um aplicativo. Você não precisa reiniciar o X.

Tecla de composição

Uma 'sequência de composição' está pressionando a Composetecla e, em seguida, um ou mais caracteres para produzir algum caractere, por exemplo:

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

Significa que pressionar Compose, imediatamente seguido por "e aproduz um ä.

<Multi_key>indica que estamos usando a Composechave. seguimos isso por uma lista de uma ou mais chaves, que precisam ser keysyms, que são representações simbólicas das chaves usadas por X (consulte a seção Academias de chaves).

Seguido por a :, seguido pelo resultado.

O resultado:

<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

Nota : Um arquivo de composição diferencia maiúsculas de minúsculas; portanto, nãoA é o mesmo que .a

Chaves mortas

FAÇAM

Faça funcionar em GTK & Qt

Defina as variáveis ​​de ambiente GTK_IM_MODULE& QT_IM_MODULEcomo xim.

Casca Bourne:

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

C shell:

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

Veja também

Minhas ~/.XCompose

É ~/.XComposeisso que eu uso ; Eu usei um script para gerar isso, mas acidentalmente o substituí ao compilá-lo> _ <Então, preciso reescrevê-lo.

Observe também esta linha:

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

Pressionar Compose ibirá inserir esta sequência (um número IBAN de teste aleatório); muito útil para testar aplicativos em que esse número é necessário para criar algum objeto (Pessoa, Organização); O XCompose também pode servir como uma ferramenta "snippet" :-)

Notas de rodapé

1: Alguns teclados UNIX tinham uma Composetecla dedicada ( como este SUN ), mas isso é bastante incomum atualmente.

2: Dependendo da configuração existente, isso pode ou não ser lido na inicialização; dependendo da sua configuração, adicione a linha xmodmap ~/.Xmodmapa ~/.xinitrcou ~/.xsession; veja também o wiki do ArchLinux .

3: Reproduzido para seu benefício:

    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                     |
    +------------------------------------------------------+
Martin Tournoij
fonte
1
Para Windows, use Wincompose em vez de Allchars. Faz exatamente o que diz na lata. Usei o Allchars até encontrar o Wincompose. A limitação da composição é que você não pode ter uma combinação memorável para alcançar todos os caracteres, apenas aqueles que você usa com frequência ou que têm uma decomposição lógica.
Gilles 'SO- stop be evil'
@Gilles Obrigado; WinCompose parece bom. Você está certo que só pode inserir um subconjunto bastante limitado de caracteres "mais usados". Para mim, isso é suficiente> 95% do tempo. Para o resto eu uso UniView ... Eu não estou ciente de qualquer coisa significativamente melhor ...
Martin Tournoij
Para caracteres raramente usados, eu uso o Shapecatcher (nenhuma integração de editor que eu conheça) ou digito o nome do personagem ( C-x 8 RETem um editor que não é vi, não sei se o Vim tem algo semelhante).
Gilles 'SO- stop be evil'
1
Os usuários do KDE não podem usar esse método, pois o KDE relega a responsabilidade de implementar esse recurso no Xorg , e o Xorg relega no Qt , e o Qt relega novamente no Xorg . Discuto isso na minha página sobre como digitar texto RTL .
dotancohen 27/02
@dotancohen Parece um problema diferente (como em, solicitação de recurso).
Martin Tournoij 27/02
20

Para inserir caracteres Unicode, como o euro ou símbolos de direitos autorais, ou sinais diacríticos, como o trema alemão ou o acento grave, digraphspodem ser usados.

Por exemplo, no modo de inserção, pressione Ctrl+ ke digite o seguinte:

  • Espanhol: a'para á, E'para É, n?para ñ,
  • Alemão: a:para ä, sspara ß,
  • outras letras acentuadas: a!para à, a>para âa ê, a?para ã,
  • Grego: a*para α(alfa), b*para β(beta), g*para γ(gama), d*para δ(delta).
  • números quadrados: 22para ², 33ou³
  • moedas: Eupara (Euro), Pdpara £(Libra),
  • Cofor ©(Copyright), DGfor °(Degree),
  • OKpara , XXpara , Sbpara (marcador),
  • sinais de pontuação: -Nfor (en dash), -Mfor (em dash)

Quando a opção digraph está configurada ( :set dg), você também pode usar o seguinte método:

  • aBackspace:para ä, EBackspaceupara etc.

Para listar os digrafos atualmente definidos, digite: :digraphs( :dig).

Fonte: Inserindo caracteres especiais no site Vim Wikia .


OS X

Se você estiver usando o OS X, é muito fácil digitar letras acentuadas em qualquer lugar pelo seguinte método:

  • Option+ e, então apara á, epara é, ipara íe similares,
  • Option+ n, então apara ã, npara ñe similares,
  • Option+ u, Em seguida, upara ü,
  • sinais de pontuação invertidos: Option+ 1para ¡, Option+ Shift+ ?para ¿,

Veja também:

kenorb
fonte
6

Meu plug-in unicode permite a fácil entrada de caracteres unicode. Especificamente, permite

  • :Digraph <name> - Pesquisar algarismos por caracteres

  • :UnicodeTable - Exibe uma tabela do conjunto de caracteres

  • :UnicodeName - Identificar caractere sob o cursor

  • Conclusão de caracteres usando seus nomes ou valores da tabela unicode ( :h i_CTRL-X_CTRL-Z) ou digarphs ( :h i_CTRL-X_CTRL_G)

Leia a ajuda para obter mais informações sobre como usar meu plugin.

Christian Brabandt
fonte
3

Além de usar os dígrafos predefinidos (Executar :digpara obter uma lista), você também pode definir seus próprios dígitos no vim:

:digr e: 235 a: 228

Veja também: http://vimdoc.sourceforge.net/htmldoc/digraph.html

Hjulle
fonte
3

Para caracteres comumente usados, :digraphou meios externos, como a tecla Escrever, são ótimos. Para os raramente usados, defino abreviações, assim:

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

E então use meu plug - in SnippetComplete para obter um menu pop-up que lista todas essas abreviações, por exemplo:unicode_<C-x>]

Ingo Karkat
fonte