Tworzenie określonego znaku ASCII w Ubuntu

19

Jestem przyzwyczajony do trzymania left Alti wprowadzania znaku ASCII za każdym razem, gdy używam nieznanej konfiguracji klawiatury i chcę wpisać znak specjalny.

Na przykład Alt+ 0+ 9+ 2tworzy ukośnik odwrotny (\).

To dotyczy systemu Windows. Czy jest na to sposób w Ubuntu?

Uwaga: Chcę też móc używać tego w trybie konsoli. Oznacza to, że nie chcę rozwiązania obejmującego oprogramowanie z graficznym interfejsem użytkownika.

Philippe Carriere
źródło
Istnieje ogólne pytanie, czy można to zrobić w systemie Windows na AskUbuntu, pod adresem askubuntu.com/questions/588090 .
JdeBP
Zobacz także unix.stackexchange.com/questions/254477 w systemach Unix i Linux.
JdeBP

Odpowiedzi:

26

Jeśli używasz Gnome (stock Ubuntu robi) można to zrobić przytrzymując oba Ctrli Shiftklucze i wpisywanie unastępuje szesnastkowej wartości znaku.

Aby utworzyć ukośnik odwrotny \, przytrzymaj Ctrl+ Shifti naciśnij U, 5i C.

W Windows wpisujesz wartość dziesiętną, podczas gdy w Linuksie wpisujesz wartość szesnastkową (która jest zwykle krótsza, jeśli wchodzisz na wyższe liczby). U stoi na Unicode.

Całkiem kompletną tabelę wartości szesnastkowych można znaleźć tutaj . Uwaga, ładowanie strony może zająć dużo czasu!

Emilien
źródło
4
„Wartość szesnastkowa” jest w rzeczywistości kodem Unicode, w przeciwieństwie do „kodów Alt”, które są ASCII
grawitacja
Łał. Dokładnie to, czego potrzebowałem! Działa wszędzie jak urok. Dziękuję Ci.
Philippe Carriere
1
Teraz muszę tylko nauczyć się wszystkich kodów w hexa .... :(
Philippe Carriere
Czy ktoś wie, jak zdobyć tę pracę w Sublime Text?
Drunken Master
6

Inną opcją (ale nie wstawia znaku według kodu ASCII / Unicode) jest aktywacja ComposeKey (podobnie jak Altw moim przypadku), aby można było następnie wpisać takie rzeczy:

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

itp. W przypadku, gdy chcesz wprowadzić często używane litery łacińskie (jak w języku hiszpańskim, francuskim itp.), może to być szybsze niż konieczność nauki punktów kodu Unicode. Chodzi o wybór!

Emilien
źródło
Czy nie potrzebujesz do tego układu klawiatury spoza USA?
Cristian Ciupitu
2
@CristianCiupitu: Nie, musisz włączyć klucz tworzenia.
Ignacio Vazquez-Abrams
@ IgnacioVazquez-Abrams, masz rację. Wygląda na to, że moje środowisko pulpitu XFCE 4.10 w ogóle nie ustawiło klawisza Compose, ale po ustawieniu odpowiedniego klawisza Alt odpowiedź zadziałała (dlatego +1 ode mnie).
Cristian Ciupitu
5

Sterownik konsoli Linuksa nie ma możliwości wprowadzania znaków w ten sposób ... ale nie jest tak naprawdę potrzebny, ponieważ powłoki same sobie z tym radzą.

$ echo $'\x5c'
\
Ignacio Vazquez-Abrams
źródło
1
To bardzo fajna metoda ... Nie mogę jej nawet znaleźć na stronach podręcznika echa, ale działa! Czy istnieje sposób podania kodu dziesiętnego zamiast szesnastkowego? (Nauczyłem się kodów dziesiętnych na pamięć)
Philippe Carriere
Czy istnieje sposób, aby tego użyć, gdy jestem na vi lub nano?
Philippe Carriere
2
Nie, można je wprowadzić tylko w postaci szesnastkowej ( \xNN) lub ósemkowej ( \NNN). Możesz użyć, printfjeśli chcesz zobaczyć kod szesnastkowy wartości. W vimie możesz wpisać Ctrl-V U, a następnie 4-cyfrowy kod Unicode. Również sekcja CYTOWANIE .
Ignacio Vazquez-Abrams,
2
@Silence: (1) Ponieważ jest to cecha twojej powłoki (zwykle bash), a nie echo.
grawity
@PhilippeCarriere W vi możesz wykonywać polecenia powłoki, przygotowując :!jak :!ls. Możesz także wstawić dane wyjściowe do bieżącego bufora za pomocą :r !. Często brakuje mi znaku tyldy, więc używam :r !echo $'\x7e'. Trochę więcej na ten temat tutaj .
ważne
1

Z często zadawanych pytań dotyczących UTF-8 i Unicode dla systemów Unix / Linux autorstwa Markusa Kuhna:

Rozszerz swoje mapowanie klawiatury za pomocą xmodmap . Jest to szczególnie wygodne, jeśli twoja klawiatura ma AltGrklawisz, który jest przeznaczony właśnie do tego celu (niektóre klawiatury amerykańskie mają zamiast AltGrodpowiedniego Altklawisza, inne niestety całkowicie go nie mają, w takim przypadku do innego klawisza należy przypisać funkcję Mode_switch) . Napisz plik ~/.Xmodmapz wpisami takimi jak

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

i załaduj go ze xmodmap ~/.Xmodmapskryptu uruchamiania X11 na serwer X. Przekonasz się wtedy, że możesz AltGrłatwo uzyskać następujące nowe znaki z klawiatury:

  • AltGr+ d→ °
  • AltGr+ [→ '
YourPadre
źródło
0

Nie do końca to, o co prosi OP, ale może wystarczy dla każdego, kto to czyta.

W zależności od wybranego układu klawiatury możesz już być w stanie wpisać niektóre znaki Unicode i ASCII; tak jak w macOS. Kliknij selektor języka obok ikony zasobnika (jeśli go masz), a następnie Show Keyboard Layoutspójrz na alternatywne znaki poszczególnych klawiszy.

Na przykład możesz wpisać… (elipsa) za pomocą right ALT + .i ÷ (dzielenie) za pomocą right ALT + SHIFT + ..

Co więcej, te naciśnięcia klawiszy działają nawet w Sublime, co okazało się bardziej uparte CTRL + SHIFT + U.

WoodrowShigeru
źródło