Czy istnieje uniwersalny sposób pisania znaków Unicode?

18

Czasami chcę pisać specjalne znaki Unicode, takie jak em-dash (-), w różnych programach, takich jak vim, Chrome (jak teraz!) Lub LibreOffice.

W LibreOffice mogę to osiągnąć poprzez dedykowane okno dialogowe znajdujące się w menu Wstaw. Wydaje się, że inne programy nie mają wbudowanego sposobu. Moim rozwiązaniem w tych przypadkach jest wyszukanie postaci na Wikipedii, skopiowanie jej i wklejenie.

Czy istnieje uniwersalny sposób pisania znaków Unicode w dowolnym programie, który akceptuje wprowadzanie tekstu w systemie Linux bez konieczności kopiowania i wklejania z miejsca, w którym jest już wydrukowany?

dr
źródło
Możesz wyszukać hasło „Wejście Unicode” na Wikipedii. Teraz wspomniane w mojej odpowiedzi.
vinc17
W LibreOffice (i MS Office) istnieje również lista automatycznych zamian, takich jak (C)-> ©. Dość często ludzie konfigurują się --jako en-dash i ---jako em-dash.
Simon Richter
Is there a universal way...Nie. (Nie znam „uniwersalnego” sposobu robienia czegokolwiek za pomocą programowania.)
user2338816

Odpowiedzi:

14

Możesz włączyć Composeklucz lub nacisnąć, CtrlShiftUa następnie szesnastkową liczbę znaków w Unicode (zera wiodące można pominąć). Na przykład Æ jest CtrlShiftUwtedy C6. Działa to na Terminalu GNOME, Terminatorze, Google Chrome i wielu innych aplikacjach, przy czym Xterm (i zgodnie z komentarzami Emacsa) nie działa.

Aby włączyć GNOME, Composeprzejdź do ustawień klawiatury, a następnie SkrótyPisanieKlawisz znaków alternatywnych i zamapuj go na czymś (powiedzmy Right Alt). Następnie naciskasz Composeklawisz i - trzy razy, aby uzyskać myślnik: -. (Wszystkie strzałki w tym akapicie są Compose->).

wprowadź opis zdjęcia tutaj

muru
źródło
2
Rozwiązanie Ctrl + Shift + u nie działa w Xterm i Emacs. To również nie działa w przeglądarce Firefox.
vinc17
2
@ vinc17 działa dla mnie w przeglądarce Firefox. Nie mam Xterm ani Emacsa do przetestowania.
muru
Hmmm, tak, działa w przeglądarce Firefox, ale muszę wpisać klawisz spacji po sekwencji szesnastkowej. W każdym razie nie jest to uniwersalne, ale prawdopodobnie funkcja dodana przez niektóre aplikacje (lub niektóre menedżery okien?). Ponadto nie działa w Operze.
vinc17
AltGr to tylko modyfikator pozwalający uzyskać dodatkowe kombinacje klawiszy. To jest to, czego używam do wpisywania znaków wymienionych w mojej odpowiedzi (np. Shift + AltGr + [daje ←). Ale użytkownik może również mapować znaki na inne klawisze, takie jak klawisze funkcyjne; Oto, co robię, aby uzyskać francuskie znaki akcentowane: éèêëâîôûàùïç. Wszystko odbywa się za pomocą ustawień XKB.
vinc17
@ vinc17 Zrobiłem niesamowitą porażkę. Mówiłem o Compose i zamiast tego powiedziałem AltGr.
muru
7

Najlepszym sposobem jest wpisanie znaku na klawiaturze. Dzięki XKB możesz przypisywać dowolne znaki Unicode do kombinacji klawiszy. Na przykład, z dostosowaniem XKB użytkownika , mogę pisać bezpośrednio: ← → ↑ ↓… € ½ «» - - ± ≠ ∩ ∪ ⊂ ∧ ∨ ∀ ∃ √ ∞ ≤ ≥ itp.

Uwaga: w szczególnym przypadku GNU Emacs kompozycję Unicode można wykonać za pomocą Ctrlx+ 8+ Return. Zobacz Ctrlx+ 8+, Ctrlhaby uzyskać dodatkowe metody.

„Wejście Unicode” na Wikipedii zawiera informacje na temat wprowadzania Unicode ISO 14755 w zależności od kontekstu, w szczególności dla X11 z niektórymi zestawami narzędzi i dla określonych aplikacji (Emacs, Opera, Vim).

Alternatywnie możesz użyć Composeklucza z ustawieniami zdefiniowanymi przez użytkownika (ponieważ ustawienia domyślne są jeszcze dalekie od ukończenia). Dokumentację zapewnia Compose(5)strona man. Na przykład napisz plik $HOME/.XComposezawierający:

include "%L"
<Multi_key> <bracketleft> <c>           : "⌈" U2308 # LEFT CEILING
<Multi_key> <bracketright> <c>          : "⌉" U2309 # RIGHT CEILING
<Multi_key> <bracketleft> <f>           : "⌊" U230A # LEFT FLOOR
<Multi_key> <bracketright> <f>          : "⌋" U230B # RIGHT FLOOR

W include "%L"pierwszej linii ładuje domyślne (locale-specyficzna) Compose plików, a następne cztery linie dodać ustawienia zdefiniowane przez użytkownika, takich jak: Compose+ [+ cdaje znak lewej sufit „⌈” (U + 2308).

vinc17
źródło
Nie potrzebujesz XKB do wiązania znaków Unicode z kombinacjami klawiszy, możesz to również zrobić za pomocą xmodmap. Nie będziesz w stanie dotrzeć do wszystkich znaków Unicode w ten sposób, jest ich po prostu zbyt wiele.
Gilles „SO- przestań być zły”
1
@Gilles xmodmap nie jest tak potężny jak XKB i miałem z tym problemy w przeszłości . Stąd moja zmiana na XKB. Ponadto nie używam wszystkich znaków Unicode. W przypadku rzadkich postaci najlepszym wyborem może być próbnik ekranowy, ponieważ można nie znać ich punktu kodowego i sposobu ich wprowadzania.
vinc17
Nie rozumiem, jak wpisać ∩ ∪ ⊂ ∧ ∨ ∀ z komponowaniem. Reszta «» ₤ ö itp. Działa. Ale nie symbole matematyczne.
Igor Chubin
@IgorChubin Nie używam komponowania, tylko ISO_Level3_Shift(alias AltGr). Właśnie zredagowałem swoją odpowiedź, aby podać link do mojej strony internetowej wyjaśniający dostosowanie XKB użytkownika .
vinc17
@ vinc17 Dziękuję, przeczytam o tym więcej. Czy znasz jakieś zalety tej metody w porównaniu do komponowania?
Igor Chubin
2

Jak opisano szczegółowo w tym poście , istnieje świetny sposób na dodanie kluczy Unicode bez konieczności zapamiętywania jakichkolwiek niezręcznych kombinacji klawiszy lub korzystania z menu rozwijanych.

Sprowadza się to do użycia funkcji Autokey , która może wykonać dowolny zestaw naciśnięć klawiszy jako wyzwalacz, aby uruchomić skrypt lub wkleić frazę. W tym przypadku twoja fraza jest po prostu żądanym znakiem Unicode.

Jak opisano w poście, dobrym sposobem na to jest śledzenie LaTeXa, ale z ukośnikiem do przodu, a nie odwrotnym ukośnikiem. Na przykład, wpisanie / delta w dowolnym miejscu (przeglądarka, libre office itp.) Zostanie automatycznie przekonwertowane na δ.

hugke729
źródło