Często wpisuję te same słowa w kilku aplikacjach:
- Redaktor (emacs, vi)
- Przeglądarka internetowa
- Muszle
Byłoby wspaniale mieć autouzupełnianie słów, które wpisałem w ciągu ostatniego tygodnia, dostępne we wszystkich powyższych aplikacjach.
Każdy z nich ma sposób na poprawę szybkości pisania. Ale coś na poziomie komputera byłoby najlepsze.
Przykład: „Ciągła integracja”. Chcę szybkiego sposobu na wpisanie tego słowa bez zmiany programu, który odbiera dane wejściowe.
Czy jest już coś takiego?
desktop-environments
usability
guettli
źródło
źródło
Odpowiedzi:
Rozwiązaniem Twojego żądania jest metoda wprowadzania.
To, co opisałeś, jest znane większości użytkowników języka CJK. Zobaczmy, jak działa metoda wprowadzania danych w obecnych systemach Linux.
System wprowadzania danych
Oto prosta architektura wspólnego systemu wprowadzania danych:
UWAGA: Zrzutowałem ten obraz z protokołu X Input Method Protocol . Niektóre strzałki nie mają znaczenia dla dalszej dyskusji.
Historycznie XIM (protokół X Input Method) był jedynym protokołem. Jest zbyt skomplikowany i brakuje mu niektórych pożądanych funkcji. Dlatego jest w większości porzucony, chociaż kompatybilność jest nadal zapewniana przez popularne zestawy narzędzi, takie jak GTK, Qt.
Nowoczesny system wprowadzania danych składa się z kilku części:
Obsługa bibliotek po stronie klienta
/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/
)Jak te części pasują do siebie?
Użytkownik wpisuje klucz. Serwer X odbiera zdarzenie sprzętowe z interfejsu evdev, tworzy XEvent i wysyła do aplikacji pod naciskiem klawiatury. Moduł metody wprowadzania aplikacji (GTK, Qt) przechwytuje zdarzenie i przekazuje informacje do serwera metody wprowadzania. Serwer metod wprowadzania określa, czego może chcieć użytkownik, i przekazuje trochę tekstu z powrotem do modułu IM.
Porozmawiajmy teraz o architekturze serwera czatu.
Serwer czatu zazwyczaj składa się z dwóch części:
Podsumowując, komunikator internetowy przekształca wpisywane słowa w coś innego i opcjonalnie zapewnia prognozy.
Przykład
Używamy
ibus-pinyin
tutaj do wpisywania niektórych chińskich znaków.Romanizacja 汉语拼音 jest
han yu pin yin
. Najpierw musisz wpisać wszystkie te litery, aby uzyskać cztery chińskie znaki. Ale po kilku przypadkach wystarczy wpisać cztery początkowe znaki,h y p y
aby uzyskać chiński znak.W tym
ibus-pinyin
przypadkuhan yu pin yin
jest skrócony doh y p y
.Bardziej zaawansowane silniki IM wykorzystują techniki uczenia statystycznego, aby zapewnić lepsze przewidywanie. Nic nie powstrzyma Cię przed napisaniem silnika do wprowadzania tekstu w języku angielskim, który zapewni Ci lepsze pisanie.
Jako bonus, wszystkie zestawy narzędzi obsługują metodę wprowadzania danych, z wyjątkiem niektórych zwykłych starych programów X. Jest to więc dość uniwersalne rozwiązanie.
Dzięki Anders FU Kiær. Funkcje / Typing-Booster | Wiki Projektu Fedora powinno być odpowiedzią
źródło
Spójrz na mój skrypt, TextSuggest .
W akcji:
Instalacja:
Zainstaluj następujące pakiety:
xdotool
xclip
suckless-tools
(dladmenu
)Następnie przypisz 2 skróty klawiaturowe:
python3 /path/to/TextSuggest.py
Pierwszy zapewni po prostu listę wszystkich słów do przeszukiwania. Użyj drugiego, gdy masz zaznaczony tekst i chcesz uzyskać sugestie / uzupełnienia.
Akceptowane sugestie są zapisywane jako historia (a następnie sugerowane jako pierwsze) w pliku
~/.textsuggest_history.txt
.Możesz zdefiniować niestandardowe słowa i rozszerzenia / aliasy w
~/.Custom_Words.txt
.źródło
Spójrz na Autokey . Może pasować do twoich potrzeb. C / P z ich strony:
źródło