Можно ли расширить функциональность vim с помощью пользовательского расширения (желательно, написанного на Python)?
В идеале мне нужна настраиваемая команда в командном режиме. Например.
ESC
: do_this
: do_that
Можно ли расширить функциональность vim с помощью пользовательского расширения (желательно, написанного на Python)?
В идеале мне нужна настраиваемая команда в командном режиме. Например.
ESC
: do_this
: do_that
vim поддерживает скрипты в python (и в perl также, я думаю).
Вам просто нужно убедиться, что дистрибутив vim, который вы используете, был скомпилирован с поддержкой python.
Если вы используете систему Linux, вы можете загрузить исходный код и затем скомпилировать его с помощью
./configure --enable-pythoninterp
make
sudo make install
Внутри vim вы можете ввести
:version
чтобы просмотреть доступные функции; если у него есть поддержка python, вы должны увидеть где-то "+ python" (иначе "-python" ).
Затем, чтобы проверить использование модуля python, вы можете ввести
:help python
P.S: если вы собираетесь скомпилировать источники vim, обязательно проверьте доступные параметры конфигурации, вам может потребоваться указать --with-python-config-dir.
PPS: для создания "пользовательской команды в командном режиме" (если я правильно понимаю, что вы имеете в виду), вы можете создать функцию "MyFunction" в vim script (используя скрипт python или vim), а затем вызывать его с помощью
:Call MyFunction()
Проверьте
:help user-functions
для деталей
Да, это так. Есть несколько расширений на http://www.vim.org/scripts/index.php
Это можно сделать и с python, если поддержка python скомпилирована.
Статья об этом: http://www.techrepublic.com/article/extending-vim-with-python/
Google - наш друг.
НТН
Были проблемы с компиляцией Vim с Python.
... проверка, если флаги компиляции и ссылки для Python являются нормальными... no: PYTHON DISABLED "в выходном файле. /configure.
В Ubuntu 10.04 вам нужно установить python2.6-dev
. Флаги для ./configure
:
--enable-pythoninterp
--with-python-config-dir=/usr/lib/python2.6/config
Убедитесь, что у вас есть путь к каталогу, который содержит файл config.c
. Также нет /
в конце пути! Это вызвало у меня проблемы.