Ich tippe oft dieselben Wörter in mehreren Anwendungen:
- Herausgeber (emacs, vi)
- Webbrowser
- Muscheln
Es wäre großartig, wenn eine automatische Vervollständigung der Wörter, die ich in der letzten Woche eingegeben habe, in allen oben genannten Anwendungen verfügbar wäre.
Jeder von ihnen hat eine Möglichkeit, die Schreibgeschwindigkeit zu verbessern. Aber etwas auf Desktop-Ebene wäre das Beste.
Beispiel: "Kontinuierliche Integration". Ich möchte einen schnellen Weg, um dieses Wort einzugeben, ohne das Programm zu ändern, das die Eingabe empfängt.
Gibt es so etwas schon?
desktop-environments
usability
guettli
quelle
quelle
Antworten:
Die Lösung für Ihre Anfrage ist die Eingabemethode.
Was Sie beschrieben haben, ist den meisten CJK-Sprachbenutzern vertraut. Lassen Sie uns überprüfen, wie die Eingabemethode in aktuellen Linux-Systemen funktioniert.
Das Eingabemethodensystem
Hier ist eine einfache Architektur für ein gängiges Eingabemethodensystem:
HINWEIS: Ich habe dieses Bild aus dem X Input Method Protocol aufgenommen . Einige der Pfeile sind für die folgende Diskussion irrelevant.
In der Vergangenheit war XIM (das Protokoll der X-Eingabemethode) das einzige Protokoll. Es ist zu komplex und es fehlen einige gewünschte Funktionen. Daher wird es größtenteils aufgegeben, obwohl die Kompatibilität immer noch von beliebten Toolkits wie GTK, Qt bereitgestellt wird.
Ein modernes Eingabemethodensystem besteht aus mehreren Teilen:
Client-seitige Bibliotheksunterstützung
/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/
).Wie passen diese Teile zusammen?
Ein Benutzer gibt einen Schlüssel ein. Der X-Server empfängt das Hardware-Ereignis von der evdev-Schnittstelle, erstellt ein XEvent und sendet es unter Tastaturfokus an die Anwendung. Das Eingabemethodenmodul des Application Toolkit (GTK, Qt) fängt das Ereignis ab und übergibt die Informationen an den Eingabemethodenserver. Der Eingabemethodenserver stellt fest, was der Benutzer möchte, und gibt Text an das IM-Modul zurück.
Lassen Sie uns nun über die Architektur des IM-Servers sprechen.
Ein IM-Server besteht normalerweise aus zwei Teilen:
Alles in allem besteht ein IM darin, Ihre Eingabe in etwas anderes umzuwandeln und optional Vorhersagen zu treffen.
Ein Beispiel
Wir verwenden
ibus-pinyin
hier einige chinesische Schriftzeichen.Die Romanisierung von 汉语拼音 ist
han yu pin yin
. Zuerst müssen Sie alle diese Buchstaben eingeben, um die vier chinesischen Schriftzeichen zu erhalten. Nach einigen Malen müssen Sie nur noch die vier Anfangszeichen eingebenh y p y
, um das chinesische Zeichen zu erhalten.In dem
ibus-pinyin
Fallhan yu pin yin
wird auf gekürzth y p y
.Fortgeschrittenere IM-Engines verwenden statistische Lerntechniken, um eine bessere Vorhersage zu ermöglichen. Nichts kann Sie davon abhalten, eine englische Eingabemethode zu schreiben, um einen Tippschub zu erzielen.
Als Bonus unterstützen alle Toolkits Eingabemethoden mit Ausnahme einiger einfacher alter X-Programme. Das ist also eine ziemlich universelle Lösung.
Vielen Dank an Anders FU Kiær. Features / Typing-Booster | Fedora Project Wiki sollte die Antwort sein
quelle
Schauen Sie sich mein Skript TextSuggest an .
In Aktion:
Installation:
Installieren Sie die folgenden Pakete:
xdotool
xclip
suckless-tools
(fürdmenu
)Weisen Sie dann 2 Tastaturkürzel zu:
python3 /path/to/TextSuggest.py
Der erste liefert einfach eine durchsuchbare Liste aller Wörter. Verwenden Sie die zweite Option, wenn Sie Text ausgewählt haben und Vorschläge / Vervollständigungen dafür erhalten möchten.
Die akzeptierten Vorschläge werden als Verlauf in der Datei gespeichert (und dann zuerst vorgeschlagen)
~/.textsuggest_history.txt
.Sie können benutzerdefinierte Wörter und Erweiterungen / Aliase unter definieren
~/.Custom_Words.txt
.quelle
Schauen Sie sich Autokey an . Es könnte Ihren Bedürfnissen entsprechen. C / P von ihrer Website:
quelle