Atualmente, estou inserindo caracteres unicode (principalmente símbolos matemáticos) usando o método de entrada TeX. Isso é complicado, pois, para cada personagem, eu tenho que fazer o seguinte:
- Alterne para o método de entrada TeX pressionando
C-\
- digite a expressão látex como
\Bbb{R}
ou\Leftrightarrow
Há relativamente pequeno subconjunto de caracteres unicode (10-20) que estou inserindo o tempo todo.
P: Existe maneira de inserir caracteres unicode com poucas teclas (2-4)?
Respostas:
Você pode usar
abbrev-mode
para criar seqüências que "se expandem" para os caracteres unicode desejados. Por exemplo, aabbrev
tabela a seguir define abreviações para as três primeiras letras minúsculas do alfabeto grego:Você pode então dizer
text-mode
(ou qualquer outro modo que desejar) para herdar sua tabela unicode:Vá para um buffer no modo de texto. Ligue
abbrev-mode
. Digiteualpha
um caractere que não seja uma palavra (espaço, ponto final etc.) e observe-o expandir para α.fonte
Você pode definir suas próprias seqüências de teclas com as funções elisp
global-set-key
elocal-set-key
. Portanto, é recomendável usar C-cuma única letra para as seqüências de teclas definidas pelo usuário. (Caso contrário, pode ser que você substitua as seqüências de teclas vinculadas por outras bibliotecas do emacs-lisp. Mais tarde, você terá problemas ao descobrir que a versão da biblioteca da sequência de teclas seria muito útil para você.)Se você quiser usar essas seqüências independentemente do modo principal, poderá vinculá-las globalmente.
Por exemplo, você pode adicionar
(global-set-key (kbd "C-c a") "⇔")
para o seu arquivo de configuração
~/.emacs
.Como alternativa, você pode usar essas teclas dependendo do modo principal.
Um exemplo é:
Isso funciona com
auctex
. Se você estiver usando o nativotex-mode
oulatex-mode
talvez seja necessário substituí-loTeX-mode-hook
portex-mode-hook
.Observe que isso também está
insert-char
vinculado a C-x 8 RET. Com isso, você pode inserir caracteres utf8 se souber o código deles. Se você não conhece o código, pode inseri-lo pela descrição, mas isso se torna complicado.Existem também modos especiais que
company-math
dão suporte ao usuário com a entrada de símbolos de látex, como -Mode eac-math
-mode .Ambos são modos de conclusão.
company
trabalha com menus do mouse eac
(preenchimento automático) trabalha com a tabtecla-Mas não tenho certeza sobre o status atual desses pacotes. Você pode instalar esses modos por melpa, se quiser experimentá-los.
fonte
C-c
é que você pode ter certeza de que não entrará em conflito com nenhuma ligação de teclas fornecida pelo Emacs ou por uma biblioteca que você possa usar.Você diz: Há um subconjunto relativamente pequeno de caracteres unicode (suponho que 10 a 20) esteja inserindo o tempo todo.
Nesse caso, como @Tobias indicou, você pode simplesmente vincular, para cada um deles, uma sequência de teclas simples a (a) um comando que insere esse caractere ou (b) uma string de caractere único com esse caractere (isso age como uma macro do teclado para inserir o caractere).
A biblioteca
ucs-cmds.el
pode ajudá-lo a definir esses comandos. Os comandos resultantes têm os mesmos nomes que os caracteres. Você pode usar macroucsc-make-commands
para definir um conjunto inteiro de comandos que inserem um caractere de um determinado tipo.Por exemplo, você pode colocar isso em seu arquivo init para definir comandos que inserem todos os símbolos matemáticos Unicode:
Isso fornece comandos cujos nomes são iguais aos caracteres matemáticos. Vincule qualquer um dos que você usa muito às teclas fáceis de usar. Por exemplo:
(Ou vincule uma chave a esse comando apenas no modo Tex, usando
define-key
com seu mapa de teclas.)Com essa simplicidade,
(ucsc-make-commands "^math")
você tem disponível todos os comandos de inserção de caracteres listados abaixo.Existem também outros caracteres Unicode, cujos nomes não começam,
math
mas são usados em matemática - por exemplo, caracterePARTIAL DIFFERENTIAL
. Você pode criar facilmente comandos que também inserem esses caracteres. (Observe que os caracteres cujos nomes começam commath
podem exigir o uso de uma fonte especial - muitas fontes não os suportam.)Obviamente, você pode usar uma expressão regular mais rígida do que
^math
, se desejar definir apenas caracteres que correspondam a esse padrão. Por exemplo, isso define comandos para todos os caracteres diferenciais parciais:Isso fornece os seguintes comandos:
Observe que os nomes de caracteres Unicode separam as palavras com caracteres de espaço e os nomes estão em maiúsculas. Os comandos de inserção correspondentes usam hífens em vez de espaços e minúsculas em vez de maiúsculas.
Uma vantagem de ter comandos com o nome de caracteres que eles inserem, em vez de, digamos, apenas vincular chaves a seqüências de caracteres singleton dos caracteres, é que você pode usar
M-x
para inserir caracteres que você usa com menos frequência, por nome usando a conclusão. Em vez de concluir com relação ao conjunto inteiro de nomes de caracteres Unicode, você conclui com os nomes dos comandos de inserção de caracteres que você definiu.Estes são os comandos que inserem caracteres cujos nomes começam
math
. Eles são o que você obtém ao avaliar(ucsc-make-commands "^math")
....
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
fonte