tự động hoàn thành ở cấp độ máy tính để bàn


11

Tôi thường gõ cùng một từ trong một số ứng dụng:

  • Biên tập viên (emacs, vi)
  • Trình duyệt web
  • Vỏ ốc

Thật tuyệt vời khi có tự động hoàn thành các từ tôi đã gõ trong tuần qua có sẵn trong tất cả các ứng dụng trên.

Mỗi người trong số họ có một cách để cải thiện tốc độ gõ. Nhưng một cái gì đó ở cấp độ máy tính để bàn sẽ là tốt nhất.

Ví dụ: "Tích hợp liên tục". Tôi muốn một cách nhanh chóng để gõ từ này mà không thay đổi chương trình nhận đầu vào.

Đã có một cái gì đó như thế này?


Vậy có giống như Synapse ( lifehacker.com/5704221/ ' ) không?
Salem

Tôi nghĩ rằng chúng có nghĩa là một cái gì đó giống như tự động hoàn thành của LibreOffice. Nó lưu các từ bạn nhập (đáp ứng yêu cầu về độ dài tùy chỉnh). Khi bạn nhập một vài chữ cái đầu tiên của từ mà nó đã lưu, nó sẽ đề nghị nhập phần còn lại và bạn có thể nhấn tab để nhập từ đó hoặc tiếp tục nhập để từ chối.
Andy Castille

Câu trả lời:


7

Giải pháp cho yêu cầu của bạn là Phương thức nhập liệu.

Những gì bạn đã mô tả là một cái gì đó quen thuộc với hầu hết người dùng ngôn ngữ CJK. Hãy xem lại cách thức hoạt động của phương thức nhập trong các hệ thống Linux hiện tại.

Hệ thống Phương thức nhập liệu

Đây là một kiến ​​trúc đơn giản cho một hệ thống phương thức nhập liệu phổ biến:

Chú ý: Tôi ảnh chụp hình ảnh này từ The X Input Method Nghị định thư . Một số mũi tên không liên quan để thảo luận sau.

Trong lịch sử, XIM (giao thức Phương thức nhập liệu X) là giao thức duy nhất. Nó quá phức tạp và thiếu một số tính năng mong muốn. Vì vậy, nó hầu như bị bỏ rơi, mặc dù khả năng tương thích vẫn được cung cấp bởi các bộ công cụ phổ biến như GTK, Qt.

Một hệ thống phương thức nhập liệu hiện đại chứa một số phần:

  1. Hỗ trợ thư viện phía khách hàng

    • thường được triển khai dưới dạng một mô-đun được tải bởi bộ công cụ (ví dụ: đối với GTK, xem /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/)
  2. Máy chủ phương thức nhập
  3. Máy chủ X

Làm thế nào để những phần này phù hợp với nhau?

Một người dùng gõ một khóa. Máy chủ X nhận sự kiện phần cứng từ giao diện evdev, soạn một XEvent và gửi đến ứng dụng dưới tiêu điểm bàn phím. Mô đun phương thức nhập của bộ công cụ ứng dụng (GTK, Qt) chặn sự kiện và chuyển thông tin đến máy chủ phương thức nhập. Máy chủ phương thức nhập số liệu người dùng có thể muốn gì và chuyển một số văn bản trở lại mô-đun IM.

Bây giờ, hãy nói về kiến ​​trúc của máy chủ IM.
Một máy chủ IM thường bao gồm hai phần:

  1. Một khung IM xử lý các phức tạp cụ thể của nền tảng và cung cấp một giao diện đẹp cho các mô đun IM của bộ công cụ và bộ công cụ IM. Nó cung cấp các cơ chế IPC được sử dụng bởi mô-đun IM, máy chủ và động cơ.
  2. Các công cụ IM khác nhau thực hiện công việc thực tế là chuyển đổi các phím được nhập bởi người dùng thành văn bản mong muốn. Các công cụ IM có thể được chia sẻ các thư viện được tải bởi máy chủ IM hoặc các quy trình độc lập giao tiếp với máy chủ IM.
  3. Các chương trình cấu hình phương thức nhập liệu phụ trợ cung cấp giao diện người dùng thân thiện để tùy chỉnh máy chủ IM và các hành vi của động cơ.

Nói chung, những gì IM làm là biến đổi những gì bạn nhập thành thứ gì đó khác biệt và tùy ý cung cấp dự đoán.

Một ví dụ

Chúng tôi sử dụng ibus-pinyinở đây để gõ một số ký tự Trung Quốc.

Chữ viết hoa của là han yu pin yin. Đầu tiên, bạn cần nhập tất cả các chữ cái này để có được bốn ký tự tiếng Trung. Nhưng sau một vài lần, bạn chỉ cần gõ bốn ký tự ban đầu h y p yđể có được ký tự Trung Quốc.

Trong ibus-pinyintrường hợp, han yu pin yinđược rút ngắn thành h y p y.
Các công cụ IM tiên tiến hơn sử dụng các kỹ thuật học thống kê để đưa ra dự đoán tốt hơn. Không có gì có thể ngăn bạn viết một công cụ phương thức nhập liệu tiếng Anh để cung cấp một sự gia tăng gõ.

Như một phần thưởng, tất cả các bộ công cụ đều có hỗ trợ phương thức nhập ngoại trừ một số chương trình X cũ đơn giản. Vì vậy, đây là một giải pháp khá phổ quát.


Cảm ơn Anders FU Kiær. Tính năng / Gõ-Booster | Fedora Project Wiki sẽ là câu trả lời


1
khung IM được sử dụng phổ biến nhất là ibus . nếu tôi có thời gian, tôi sẽ viết một công cụ IM để làm điều đó. bất kỳ ai cũng có thể thử nó và để lại một liên kết nếu bạn là một mã bằng chứng khái niệm.
sgx1



Câu trả lời của bạn là tốt nhất. Tôi đưa cho bạn tiền thưởng :-)
guettli

3

Hãy xem kịch bản của tôi, TextSuggest .

Trong hành động:

Imgur

Cài đặt:

Cài đặt các gói sau:

  • xdotool
  • xclip
  • suckless-tools(cho dmenu)

Sau đó gán 2 phím tắt:

  • một đến `python3 /path/to/TextSuggest.py --noselect
  • người khác để python3 /path/to/TextSuggest.py

Cái đầu tiên đơn giản sẽ cung cấp một danh sách có thể tìm kiếm của tất cả các từ. Sử dụng thứ hai khi bạn có một số văn bản được chọn và muốn nhận đề xuất / hoàn thành cho nó.

Các đề xuất được chấp nhận được lưu trữ dưới dạng lịch sử (và sau đó được đề xuất trước) trong tệp ~/.textsuggest_history.txt.

Bạn có thể xác định các từ tùy chỉnh và mở rộng / bí danh tại ~/.Custom_Words.txt.


0

Hãy xem Autokey . Nó có thể phù hợp với nhu cầu của bạn. C / P từ trang web của họ:

AutoKey là một tiện ích tự động hóa máy tính để bàn cho Linux và X11. Nó cho phép bạn quản lý bộ sưu tập các tập lệnh và cụm từ và gán chữ viết tắt và phím nóng cho chúng. Điều này cho phép bạn thực thi một tập lệnh hoặc chèn văn bản theo yêu cầu trong bất kỳ chương trình nào bạn đang sử dụng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.