デスクトップレベルでオートコンプリート


11

私はしばしばいくつかのアプリケーションで同じ単語を入力します:

  • エディター(emacs、vi)
  • ウェブブラウザ
  • 貝殻

上記のすべてのアプリケーションで、先週入力した単語のオートコンプリートを利用できるようにすることは素晴らしいことです。

それぞれにタイピング速度を改善する方法があります。しかし、デスクトップレベルの何かが最適です。

例:「継続的な統合」。入力を受け取るプログラムを変更せずに、この単語をすばやく入力する方法が必要です。

すでにこのようなものはありますか?


SynetseのようなSoetihng(lifehacker.com/5704221/…
セーラム14年

LibreOfficeのオートコンプリートのようなものを意味すると思います。入力した単語を保存します(カスタマイズ可能な長さの要件を満たします)。保存した単語の最初の数文字を入力すると、残りの文字が入力されます。Tabキーを押して入力するか、入力し続けて拒否できます。
アンディカスティーユ

回答:


7

あなたの要求に対する解決策はインプットメソッドです。

あなたが説明したことは、ほとんどのCJK言語ユーザーになじみのあるものです。現在のLinuxシステムでインプットメソッドがどのように機能するかを見てみましょう。

入力方法システム

一般的なインプットメソッドシステムのシンプルなアーキテクチャは次のとおりです。

注:X入力メソッドプロトコルからこのイメージのスナップショットを作成します。矢印のいくつかは、以下の説明とは無関係です。

歴史的に、XIM(X Input Methodプロトコル)が唯一のプロトコルでした。それは非常に複雑であり、いくつかの望ましい機能が欠けています。そのため、GTKやQtなどの人気のあるツールキットによって互換性は引き続き提供されますが、ほとんど放棄されています。

最新の入力方式システムには、いくつかの部分が含まれています。

  1. クライアント側のライブラリサポート

    • 通常、ツールキットによってロードされるモジュールとして実装されます(例えば、GTKについては、を参照/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/
  2. インプットメソッドサーバー
  3. Xサーバー

これらの部品はどのように組み合わされますか?

ユーザーがキーを入力します。Xサーバーは、evdevインターフェイスからハードウェアイベントを受信し、XEventを作成して、キーボードフォーカスでアプリケーションに送信します。アプリケーションツールキット(GTK、Qt)のインプットメソッドモジュールはイベントをインターセプトし、インプットメソッドサーバーに情報を渡しました。入力方式サーバーは、ユーザーが何を望んでいるかを把握し、IMモジュールにテキストを返します。

次に、IMサーバーのアーキテクチャについて説明します。
通常、IMサーバーは2つの部分で構成されます。

  1. プラットフォーム固有の複雑さを処理し、IMエンジンおよびツールキットIMモジュールへの優れたインターフェイスを提供するIMフレームワーク。IMモジュール、サーバー、およびエンジンで使用されるIPCメカニズムを提供します。
  2. さまざまなIMエンジンが、ユーザーが入力したキーを目的のテキストに変換する実際の作業を行います。IMエンジンは、IMサーバーまたはIMサーバーと通信する独立したプロセスによってロードされる共有ライブラリです。
  3. 補助入力メソッド構成プログラムは、IMサーバーとエンジンの動作をカスタマイズするための使いやすいユーザーインターフェイスを提供します。

全体として、IMが行うことは、入力内容を別の何かに変換し、オプションで予測を提供することです。

私たちは、使用ibus-pinyin中国の一部の文字を入力するためにここに。

汉语拼音のローマ字表記はですhan yu pin yin。まず、これらのすべての文字を入力して、4つの漢字を取得する必要があります。しかし、数回後にはh y p y、漢字を取得するために4つの初期文字を入力するだけです。

このibus-pinyin場合、han yu pin yinはに短縮されh y p yます。
より高度なIMエンジンは、統計学習技術を利用して、より良い予測を提供します。タイピングを強化するために、英語のインプットメソッドエンジンを書くことを止めるものは何もありません。

ボーナスとして、いくつかの単純な古いXプログラムを除き、すべてのツールキットにインプットメソッドのサポートがあります。したがって、これは非常に普遍的なソリューションです。


Anders FUKiærに感謝します。機能/タイピングブースター| Fedora Project Wikiが答えになるはずです


1
最も一般的に使用されるIMフレームワークはibusです。時間があれば、それを行うためのIMエンジンの作成に取り組みます。概念実証コードがある場合は、誰でも試してリンクを残すことができます。
sgx1 14年



あなたの答えは最高です。私はあなたに賞金を与えます:-)
ゲットリ14年

3

私のスクリプトTextSuggestを見てください

動作中:

イグル

インストール:

次のパッケージをインストールします。

  • xdotool
  • xclip
  • suckless-toolsdmenu

次に、2つのキーボードショートカットを割り当てます。

  • 1つは `python3 /path/to/TextSuggest.py --noselect
  • 他の python3 /path/to/TextSuggest.py

最初のものは、すべての単語の検索可能なリストを提供します。いくつかのテキストが選択されていて、その候補/補完を取得したい場合に2番目を使用します。

受け入れられた提案は、履歴としてファイルに保存されます(そして最初に提案されます)~/.textsuggest_history.txt

でカスタムの単語と展開/エイリアスを定義できます~/.Custom_Words.txt


0

Autokeyを見てください。ニーズに合うかもしれません。サイトからのC / P:

AutoKeyは、LinuxおよびX11用のデスクトップ自動化ユーティリティです。スクリプトとフレーズのコレクションを管理し、略語とホットキーをこれらに割り当てることができます。これにより、スクリプトを実行したり、使用しているプログラムにオンデマンドでテキストを挿入したりできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.