Сопоставление команд vim с функциями времени компиляции

Сопоставление команд vim с функциями времени компиляции

В Vim есть понятиефункции, т. е. подмножества функций, которые могут или не могут поддерживаться в фактической установке, на основе флагов времени компиляции. Наличие функции можно проверить с помощью функции has(), а все возможные функции можно перечислить с помощью feature-listкоманды.

Я хочу, чтобы мой скрипт vim был более надежным, проверяя функции перед их использованием. Моя проблема в том, что не документировано явно, какая команда полагается на какую функцию.

Конкретный пример: некоторые дистрибутивы Linux поставляются vim.tinyпо умолчанию, что является версией с сильно ограниченными возможностями vim. Если я запускаю vim.tiny, мой .vimrcвыдает множество сообщений об ошибках. Например, letкоманда недоступна, но не очевидно, какая функция предоставляет эту команду. Как я могу надежно это определить? Или, если это невозможно, как мне сделать так, чтобы запуск vim корректно деградировал для vim.tiny?

решение1

Нацеливание плагина Vim наvim-крошечныйсложно, так как оно состоит изоченьограниченный набор функций. Он предназначен как простая заменави, поддерживающий всего несколько отображений, не более того.

Тем не менее, действительно возможно обнаружить и подтвердить определенные возможности, используя has()и exists(). Ошибки на :letможно было бы предотвратить, обернув в :if 1, но, как я уже сказал, лучше стремиться к Vim с «нормальными» функциями и просто добавить проверки на наличие новых вещей (например,скрыть, постоянная отмена, введенная в Vim 7.3) и существенные исправления ошибок (но только если они вам нужны).

Связанный контент