Дело в том, что даже когда вы пишете код плагина в Python, вы все равно будете обрабатывать события Vimscript, получать доступ к переменным Vimscript, использовать Vimscript для отображения ключей и так далее. Написание плагинов в Python по сути означает написание их в Python и Vimscript.
Вы должны использовать свой основной модуль Python (sample.py
) для определения функций, а не выполнить код на верхнем уровне. Затем вы можете использовать сопоставления или авто-команды для запуска этих функций при определенных c событиях.
Например, для запуска компиляции при нажатии F5:
nnoremap <silent> <F5> :python3 sample.compile()<CR>
Или для добавления авто лицензионный комментарий к началу с <Leader>L
nnoremap <silent> <Leader>L :0put =py3eval('sample.license_text()')<CR>
Или для проверки синтаксиса файлов Ruby при их загрузке:
autocmd FileType ruby python3 sample.check_syntax('ruby')
Как видите, пока здесь вы можете использовать код Python, вы в основном делаете это, вызывая команду :python3
или используя функцию py3eval()
, но при этом все еще задействует немало Vimscript. Таким образом, в конечном итоге вам действительно нужно хорошо понимать, как работает Vimscript, чтобы иметь возможность эффективно писать плагины Vim.
То же самое верно и для использования модуля vim
из Python. Так как вы в основном используете его для доступа к переменным Vimscript и то, как у вас есть доступ к объектам Vim, близко соответствует тому, что вам предлагают функции Vim, знание Vimscript поможет вам в этом.
Возможность написания плагинов Vim в Python может быть очень удобным, когда вы используете его для выполнения sh того, что было бы невозможно или очень трудно сделать в чистом Vimscript, например, для доступа к веб-ресурсам (например, онлайн-словарь поиск), анализирует сложные форматы файлов, такие как XML или CSV, с полной точностью, обращается к базам данных или сетевым серверам или оценивает синтаксис кода Python (поскольку вы можете легко использовать Python для анализа и запуска Python фрагментов. )
Но даже в этих случаях наиболее целесообразно реализовать большую часть плагина с помощью Vimscript и использовать Python только по мере необходимости для реализации частей, которые вы не можете напрямую реализовать с помощью Vimscript.
Если вы хотите больше узнать о Vimscript и о том, как писать с ним плагины, я настоятельно рекомендую Le Арн Вимскрипт Сложный путь от Стива Ло sh. Это отличный ресурс, если вы заинтересованы в создании плагинов Vim.