скасувати завершено


11

Зазвичай введення режиму завершення ( <C-n>) вставляє потрібне слово під час першого натискання <C-n>, але не завжди. Тому я хотів би, щоб Vim вставив матч, який він вважає найкращим під час натискання <C-n>, але все ж дозволити мені скасувати це вставлення після цього, якщо правильна відповідність не з’явиться або буде далеко в списку.

Звичайно, я міг би кодувати цю поведінку, але я маю відчуття, що для цього повинен бути стандартний ключ (комбінація). Чи міг би хтось вказати на мене у правильному напрямку?

Питання про бонус: чи є ще один ключ, який я можу використовувати, щоб отримати найдовший збіг (як це було до мого удару <C-n>)?

Для чого це варто, я використовую completeopt=menu


1
Це ctrl-uте, що ви шукаєте?
statox

Ні, ctrl-u видається видалити весь рядок. Я шукаю комбінацію, яка видаляє лише текст, який було вставлено натисканням клавіш ctrl-n.
Octaviour

Першою моєю думкою було "не тут звичайна клавіша скасування роботи?", Тоді я зрозумів, що це emacs. Лише кілька днів навчання років тому зіпсувало мене, я купаюсь у священній річці та очищуюся!
sundar

Відповіді:


14

Від :h complete_CTRL-E:

                                                        * завершено_CTRL-E *
Коли завершення активне, ви можете використовувати CTRL-E, щоб зупинити його та повернутися до
оригінально набраний текст. CTRL-E не буде вставлено.

Крім того, якщо ви, скажімо, введете aтоді ^Pі отримаєте дуже довгий список, ви можете натиснути, ^N щоб повернутися до оригінального тексту, коли спливаюче вікно завершення ще активне. Потім ви можете ввести зайві символи, щоб звузити список заповнення.


Саме це я і шукав. Я не розумів, що ctrl-p також поверне мене до початкового вводу. Дякую.
Октавіор

2
@Octaviour, я вважаю, що ctrl-p, як правило, є більш корисним, ніж ctrl-n, тому що він шукає найближчу відповідність раніше (а не після), де ви знаходитесь. Отже, якщо ви тільки що написали слово, ctrl-p швидко покаже вам те саме слово, якщо вам потрібно повторити його (наприклад, знову використовувати ту саму змінну в коді)
Шахбаз

Так, я написав ^Pза звичкою саме з цієї причини.
Антоній
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.