(Прочитав это, пожалуйста, предложите другую формулировку вопроса, потому что я не смог придумать лучшую)
При написании и редактировании в Vim, будь то тексты для людей или тексты для людей и компьютеров (код), я часто не могу сразу принять решение об окончательной версии некоторого фрагмента текста, будь то слово с большим количеством синонимов (в прозе) или имя функции с еще неясной целью (в коде). Например, в прозе:
Мне удалось убедить / убедить / убедить его использовать Linux вместо Windows.
Или в коде:
def count/countEven/somethingElse(input)
...
...
Вот так выглядит мой текущий рабочий процесс. Я хочу отслеживать все возможные кандидаты на окончательный вариант текста, поэтому я ставлю их после косой черты. Но есть проблемы с этим подходом:
Это делает текст трудным для чтения. Сравните мой рабочий процесс:
Это дополняется / усиливается возможностью / возможностью делегировать / назначать утомительную / однообразную и сложную / трудную работу компьютерам.
Как нормальные люди пишут:
Это усиливается возможностью делегировать монотонную и сложную работу компьютерам.
Мой нынешний подход никоим образом не выделяет эти незавершенные куски текстов: они выглядят как обычная часть текста.
У меня проблемы с определением того, где еще не определился фрагмент текста и начинается «нормальный» текст. Особенно, когда в некоторых из кандидатов на блоки есть пробелы, например:
... убедить / спорить в / убедить ...
Можно предположить, что у меня есть эти четыре варианта:
убедить в
убедить убедить
спорить в
спорить убедить
в то время как на самом деле выбор между
убеждать
спорить в
уговаривать
Итак, знаете ли вы какое-либо решение в виде:
- встроенная функциональность Vim
- плагин
- что-то, чтобы положить в мой .vimrc
- что-нибудь еще
решить проблему объединения всех этих кусков в "коробку", которая не отвлекает от чтения текста?
Если нет, с чего начать поиск в документации Vimscript (никогда не программируемой в нем) для реализации выпадающего меню, как показано ниже?
Заранее спасибо.
PS: возможное решение. Скажи, у меня есть этот текст:
Мне удалось убедить / убедить / убедить его использовать Linux вместо Windows.
С решением это будет выглядеть так:
Мне удалось [3] убедить его использовать Linux вместо Windows.
Основные характеристики:
- Он показывает только кандидата на кусок моего выбора, скрывая других
- Опционально показывает, сколько еще кандидатов
- Это место в тексте выделено, возможно, другим цветом текста.
Чтобы получить доступ к другим кандидатам, мне нужно было бы навести курсор на пункт [3], щелкнуть специальную клавишу, и в нем появилось бы раскрывающееся меню со всеми остальными кандидатами, как с функцией автозаполнения:
I've managed to *persuade[3]* him to use Linux instead of Windows.
convince
argue into
Тогда я смогу выбрать (скажем, Ctrl-N или Ctrl-P) вариант, который подходит больше. Возможность удалить кандидата тоже подойдет.
Это только одно из возможных решений.