Як я можу зробити так, щоб вікно вибору правопису дозволило ввести власне виправлення?


14

Виконуючи перевірку орфографії, клавіші z=, відображається список вибору, як показано нижче.

виберіть правильний

Як ви бачите правильний написання; "тобто" не відображається як жоден із варіантів. Я хотів би покращити це меню, щоб я міг замість цього просто ввести "тобто" і натиснути клавішу Enter і замінити його.

Було б також непогано, якби в рамках цього ж кроку я міг би почати вводити ім'я одного з представлених варіантів і вкладку змагатись з цим - мій розум працює краще на заміну слів, вводячи слова, а не вводячи цифри.

Я підозрюю, що це потрібно робити за допомогою плагіна, але я не впевнений, що це не лише параметр config.

Відповіді:


5

Подивитися на spell_suggest()функцію в spell.cцьому не видається можливим z=. Після отримання та відображення всіх можливих пропозицій, він робить:

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

prompt_for_number()живе в misc1.c, і робить саме те, що ви б очікували від цього: він запитує номер (також дивіться get_number()в тому ж файлі). Відображення чи інше введення заборонено.


Другий варіант - використовувати «завершення» написання Vim через Ctrl x+ sабо Ctrl x+ Ctrl s1 у режимі вставки. Це робить приблизно те, що ви хочете. Ви можете вибрати один з поповнень з Ctrl nі Ctrl pабо клавіша зі стрілками, або введіть своє власне поліпшення.

Ви можете використовувати плагін supertab, щоб зробити це за допомогою свого Tabключа. :help ins-completionтакож має CleverTab()функцію, яку ви могли б адаптувати для цього.

Для отримання додаткової інформації див :help ins-completion, :help i_CTRL-X_s


Нарешті, Vim має spellsuggest()функцію, яка повертає список правописних пропозицій:

: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']

Ви можете використовувати цю функцію для створення власного екрану пропозицій щодо заклинань.


Зноска

1 : Зауважте, що використання Ctrl sможе не працювати, оскільки документи згадують:

ПРИМІТКА: CTRL-S призупиняє показ дисплея в багатьох терміналах Unix. Використовуйте замість 's'. Введіть CTRL-Q, щоб відновити показ.

Якщо ви використовуєте gVim, використання Ctrl sмає працювати. Або ви можете відключити це у своєму терміналі за допомогою stty -ixon.


3

Я збираюся розширити / консолідувати @ quincy-bowers відповідь:

  1. Ви не можете вводити власні пропозиції на екрані пропозицій з орфограми.
  2. Не має особливого сенсу (у VIM) вводити власні пропозиції на екрані пропозицій із заклинання.

VIM - це текстовий редактор. Оскільки саме це робить найкраще, редагування залишає на себе. Іншими словами, відповідь, щоб змінити неправильно написане слово на власну власну пропозицію, просто натисніть, enterщоб відхилити список пропозицій, а потім змінити слово на правильний написання вручну. ( ciwідеально підходить для цього).

Потім (як @ quincy-bowers запропоновано), якщо ви хочете, щоб спеціальна правильна написання відображалася в наступних списках пропозицій, введіть zgкурсор на слово, і він буде доданий до вашого орфографічного словника (див. :help zgДетальну інформацію).

Однак, сказавши все це, це не завадило розумним людям, які використовують VIM, шукати альтернативи (необмежені способи надати шкірі коту, як вони кажуть), і тому ви можете спробувати альтернативний плагін, наприклад, об'єднати-заклинання-пропозиції .


Опис поточного робочого процесу - це скоріше коментар, ніж відповідь. Хоча ти це добре поясниш.
Ліндон Уайт

1
@Oxinabox можливо ви шукаєте щось більше у рядках: vim.org/scripts/script.php?script_id=4929 можливо?
Сукіма

Так, це набагато більше схоже на те, що я шукаю.
Ліндон Уайт

2

Не додаючи ніяких плагінів, ви можете додати відоме гарне слово до свого файла заклинання. Замість того, z=щоб наводити орфографічні пропозиції, візуально виберіть текст, який ви хочете додати до файла правопису, і натисніть zg.

Слід також зазначити, що у вікні пропозиції для написання правопису ви можете скористатися мишкою для вибору потрібного, якщо ви ввімкнули мишу для режиму НОРМАЛЬНО. Я маюset mouse=aНаприклад, встановив у своєму .vimrc, який дозволяє миші в усіх режимах, будь я в Vim чи gVim.

Я не думаю, що інші речі, які ви хочете, можна виконати без плагіна або зміни самого Vim.


1
Це всі корисні поради, але я не бачу, як вони відповідають на питання?
Мартін Турноїй

@Carpetsmoker Я можу сказати те саме про вашу власну відповідь. Я сказав йому, що це неможливо, і запропонував змінити робочий процес як можливу роботу. Так само, як і ви.
Квінсі Боуерс

1
@MartinTournoij Ця відповідь фактично дає вирішення проблеми: Необхідно включити нове слово > zg виконує таке включення .
nilon
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.