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.


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!


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!


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'
\

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+ [→ '

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.