Produzindo um caractere ASCII específico no Ubuntu

19

Estou acostumado a segurar left Alte inserir o caractere ASCII sempre que estiver usando uma configuração de teclado desconhecida e desejar digitar um caractere especial.

Por exemplo, Alt+ 0+ 9+ 2faz uma barra invertida (\).

Isso está no Windows. Existe uma maneira de fazer isso no Ubuntu?

Nota: Eu também quero poder usar isso no modo de console. Isso significa que não quero uma solução que envolva software com uma GUI.

Philippe Carriere
fonte
Há uma pergunta geral sobre se é possível fazer isso da maneira do Windows no AskUbuntu, em askubuntu.com/questions/588090 .
JdeBP
Consulte também unix.stackexchange.com/questions/254477 no Unix e Linux.
JdeBP

Respostas:

26

Se você estiver usando o Gnome (estoque Ubuntu faz) você pode fazer isso pressionando ambas as Ctrle Shiftchaves e digitação useguidos pelo hexadecimal valor do caractere.

Para produzir a barra invertida \, segure Ctrl+ Shifte pressione U, 5e C.

No Windows, você digita o valor decimal, enquanto no Linux, digita o valor hexadecimal (que geralmente é menor se você digitar os números mais altos). O u significa Unicode.

Uma tabela bastante completa de valores hexadecimais pode ser encontrada aqui . Atenção, a página pode demorar muito para carregar!

Emilien
fonte
4
O "valor hexadecimal" é, de fato, o ponto de código Unicode, ao contrário dos "códigos Alt", que são ASCII
grawity
Uau. Exatamente o que eu precisava! Funciona em todos os lugares como um encanto. Obrigado.
Philippe Carriere
11
Agora eu só preciso aprender todos os códigos em hexa .... :(
Philippe Carriere
Alguém sabe como obter esse trabalho em Sublime Text?
Drunken Master
6

Outra opção (mas não insere um caractere pelo código ASCII / Unicode) é ativar o ComposeKey (como Altno meu caso), para que você possa digitar coisas como:

  • Alt+ =+ e→ €
  • Alt+ '+ e→ é
  • Alt+ ^+ e→ ê

etc. Caso deseje inserir letras latinas usadas com freqüência (como em espanhol, francês, etc.), isso pode ser mais rápido do que aprender os pontos de código Unicode. É tudo sobre ter escolha!

Emilien
fonte
Você não precisa de um layout de teclado fora dos EUA para isso?
Cristian Ciupitu
2
@CristianCiupitu: Não, você precisa habilitar uma chave de composição.
Ignacio Vazquez-Abrams
@ IgnacioVazquez-Abrams, você está certo. Parece que meu ambiente de área de trabalho XFCE 4.10 não definiu a tecla Compose, mas depois de defini-la com a tecla Alt correta, a resposta funcionou (portanto, com +1).
Cristian Ciupitu 14/07/2014
5

O driver do console do Linux não possui um recurso para inserir caracteres dessa maneira ... mas não é realmente necessário, pois os shells podem lidar com isso sozinhos.

$ echo $'\x5c'
\
Ignacio Vazquez-Abrams
fonte
11
Esse é um método muito bom ... Eu não consigo encontrá-lo nas páginas de manual do eco, mas funciona! Existe uma maneira de fornecer o código decimal em vez do hexadecimal? (Eu aprendi os códigos decimais pelo coração)
Philippe Carriere
Existe uma maneira de usar isso quando estou no vi ou nano?
Philippe Carriere
2
Não, eles só podem ser inseridos em hex ( \xNN) ou octal ( \NNN). Você pode usar printfse quiser ver o código hexadecimal para um valor. No vim, você pode digitar Ctrl-V U e, em seguida, o ponto de código Unicode de 4 dígitos. Além disso, seção CITAÇÃO .
Ignacio Vazquez-Abrams
2
@ Silence: (1) Porque é uma característica do seu shell (geralmente bash), não do echo.
grawity
@PhilippeCarriere No vi, você pode executar comandos shell anexando :!como :!ls. Você também pode inserir a saída no buffer atual usando :r !. Muitas vezes, não tenho o caractere til, então eu uso :r !echo $'\x7e'. Um pouco mais sobre isso aqui .
válido
1

Das perguntas frequentes sobre UTF-8 e Unicode para Unix / Linux de Markus Kuhn:

Estenda o mapeamento do teclado usando o xmodmap . Isso é particularmente conveniente se o teclado tiver uma AltGrtecla, destinada exatamente a esse propósito (alguns teclados dos EUA têm, em vez de AltGrapenas a Alttecla certa , outros não possuem essa tecla totalmente infelizmente, caso em que alguma outra tecla deve receber a função Mode_switch) . Escreva um arquivo ~/.Xmodmapcom entradas como

keycode 113 = Mode_switch Mode_switch
keysym d = d NoSymbol degree        NoSymbol
keysym m = m NoSymbol emdash        mu
keysym n = n NoSymbol endash        NoSymbol
keysym 2 = 2 quotedbl twosuperior   NoSymbol
keysym 3 = 3 sterling threesuperior NoSymbol
keysym 4 = 4 dollar   EuroSign      NoSymbol
keysym space = space  NoSymbol      nobreakspace NoSymbol
keysym minus = minus  underscore    U2212        NoSymbol
keycode 34 = bracketleft  braceleft  leftsinglequotemark  leftdoublequotemark
keycode 35 = bracketright braceright rightsinglequotemark rightdoublequotemark
keysym KP_Subtract = KP_Subtract NoSymbol U2212    NoSymbol
keysym KP_Multiply = KP_Multiply NoSymbol multiply NoSymbol
keysym KP_Divide   = KP_Divide   NoSymbol division NoSymboll

e carregue-o com xmodmap ~/.Xmodmapo script de inicialização do X11 no servidor X. Você descobrirá com AltGrfacilidade os seguintes novos caracteres do teclado:

  • AltGr+ d→ °
  • AltGr+ [→ '
YourPadre
fonte
0

Não é exatamente o que o OP está pedindo, mas talvez seja o suficiente para quem estiver lendo isso.

Dependendo do layout do teclado selecionado, você já poderá digitar alguns caracteres unicode e ASCII; assim como no macOS. Clique no seletor de idioma ao lado do ícone da bandeja (se houver) Show Keyboard Layoute veja os caracteres alternativos das teclas individuais.

Por exemplo, você pode digitar… (reticências) com right ALT + .e ÷ (divisão) com right ALT + SHIFT + ..

Além disso, essas teclas até funcionam no Sublime, que provou ser mais teimoso CTRL + SHIFT + U.

WoodrowShigeru
fonte