Làm cách nào tôi có thể tạo cửa sổ chọn kiểm tra chính tả cho phép tôi nhập chính xác?


14

Khi thực hiện kiểm tra chính tả, nhập khóa z=, sẽ hiển thị danh sách lựa chọn, như được hiển thị dưới đây.

chọn đúng

Như bạn có thể thấy chính tả; "Tức là" không được hiển thị như bất kỳ tùy chọn nào. Tôi muốn cải thiện menu này, để thay vào đó tôi chỉ cần gõ "tức là" và nhấn enter và thay thế nó.

Sẽ rất tuyệt, nếu là một phần của cùng một bước nếu tôi có thể bắt đầu nhập tên của một trong các tùy chọn được trình bày và tab cạnh tranh với điều đó - tâm trí của tôi hoạt động tốt hơn trong việc thay thế các từ bằng cách nhập từ thay vì nhập số.

Tôi nghi ngờ điều này cần phải được thực hiện với một trình cắm nhưng tôi không chắc chắn rằng đó không chỉ là một tùy chọn cấu hình.

Câu trả lời:


5

Nhìn vào spell_suggest()chức năng spell.cnày dường như không thể với z=. Sau khi nhận và hiển thị tất cả các đề xuất có thể, nó thực hiện:

/* Ask for choice. */
selected = prompt_for_number(&mouse_used);

prompt_for_number()sống trong misc1.cvà thực hiện chính xác những gì bạn mong đợi nó sẽ làm: nó nhắc một số (cũng thấy get_number()trong cùng một tệp). Ánh xạ hoặc đầu vào khác không được phép.


Tùy chọn thứ hai là sử dụng "hoàn thành" chính tả của Vim thông qua Ctrl x+ shoặc Ctrl x+ Ctrl s1 trong chế độ chèn. Điều này không đại khái những gì bạn muốn. Bạn có thể chọn từ các hoàn thành với Ctrl nCtrl phoặc các phím mũi tên hoặc nhập cải tiến của riêng bạn.

Bạn có thể sử dụng plugin supertab để làm điều này với Tabkhóa của bạn . :help ins-completioncũng có một CleverTab()chức năng mà bạn có thể thích nghi cho việc này.

Để biết thêm thông tin, xem: :help ins-completion, :help i_CTRL-X_s


Cuối cùng, Vim có spellsuggest()chức năng, trả về một danh sách các gợi ý chính tả:

:echo spellsuggest('hellz')
['hells', 'hello', 'hell', 'help', 'halls', 'heals', 'heels', 'hills', 'hulls', 'hell''s',
 'hellos', 'hell’s', 'held', 'helm', 'tell', 'well', 'bells', 'cells', 'dells', 'fells',
 'helot', 'helve', 'hertz', 'hilly', 'holly']

Bạn có thể sử dụng chức năng này để xây dựng màn hình gợi ý chính tả của riêng bạn.


Chú thích

1 : Lưu ý rằng việc sử dụng Ctrl scó thể không hoạt động, như các tài liệu đề cập:

LƯU Ý: CTRL-S tạm dừng hiển thị trong nhiều thiết bị đầu cuối Unix. Sử dụng 's' thay thế. Nhập CTRL-Q để tiếp tục hiển thị.

Nếu bạn đang sử dụng gVim, sử dụng Ctrl ssẽ hoạt động. Hoặc bạn có thể vô hiệu hóa điều này trong thiết bị đầu cuối của bạn với stty -ixon.


3

Tôi sẽ mở rộng / củng cố câu trả lời @ quincy-bowers:

  1. Bạn không thể nhập các đề xuất của riêng bạn từ màn hình gợi ý chính tả.
  2. Sẽ không có ý nghĩa gì (trong VIM) khi nhập các đề xuất của riêng bạn vào màn hình gợi ý chính tả.

VIM là một trình soạn thảo văn bản. Vì đó là những gì nó làm tốt nhất nên nó để lại chỉnh sửa cho chính nó. Nói cách khác, câu trả lời để thay đổi một từ sai chính tả thành gợi ý tùy chỉnh của riêng bạn, chỉ cần nhấn enterđể loại bỏ danh sách gợi ý và sau đó thay đổi từ này thành cách viết đúng chính tả của bạn. ( ciwhoạt động hoàn hảo cho điều đó).

Sau đó (như @ quincy-bowers đã đề xuất) nếu bạn muốn chính tả tùy chỉnh hiển thị trong loại danh sách đề xuất tiếp theo zgkhi con trỏ ở trên từ và nó sẽ được thêm vào từ điển chính tả của bạn (xem :help zgđể biết chi tiết).

Tuy nhiên, sau khi nói tất cả những điều đó, họ đã không ngăn được những người thông minh sử dụng VIM tìm kiếm các lựa chọn thay thế (cách không giới hạn để nuôi một con mèo mà họ nói) và vì vậy bạn có thể thử một plugin thay thế, ví dụ như unite-chính tả .


Mô tả quy trình công việc hiện tại là một nhận xét nhiều hơn là một câu trả lời. Mặc dù bạn giải thích nó tốt.
Lyndon White

1
@Oxinabox có lẽ bạn đang tìm kiếm một cái gì đó nhiều hơn trên các dòng: vim.org/scripts/script.php?script_id=4929 có thể?
Sukima

Vâng, đó là nhiều hơn như những gì tôi đang tìm kiếm.
Lyndon White

2

Không cần thêm bất kỳ plugin nào, bạn có thể thêm một từ tốt đã biết vào tệp chính tả của mình. Thay vì z=đưa ra các gợi ý chính tả, hãy chọn trực quan văn bản bạn muốn thêm vào tệp chính tả và nhấn zg.

Tôi cũng cần lưu ý rằng từ trong cửa sổ gợi ý chính tả, bạn có thể sử dụng chuột để chọn cái bạn muốn miễn là bạn đã bật chuột cho chế độ BÌNH THƯỜNG. Tôi đã set mouse=athiết lập trong .vimrc của tôi, ví dụ, cho phép chuột ở tất cả các chế độ cho dù tôi đang ở Vim hay gVim.

Tôi không nghĩ rằng những điều khác bạn muốn có thể được thực hiện mà không cần plugin hoặc thay đổi chính Vim.


1
Đây đều là những lời khuyên hữu ích, nhưng tôi không thấy họ trả lời câu hỏi như thế nào?
Martin Tournoij

@Carpetsmoker Tôi có thể nói như vậy về câu trả lời của riêng bạn. Tôi nói với anh ta rằng điều đó là không thể và đề nghị thay đổi quy trình làm việc như một công việc có thể xảy ra. Giống như bạn đã làm.
Quincy Bowers

1
@MartinTournoij Câu trả lời này thực sự đưa ra một giải pháp cho vấn đề: Cần bao gồm từ mới > zg thực hiện việc đưa vào như vậy .
nilon
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.