2008-09-26 3 views
10

можно расширить функциональность vim с помощью пользовательского расширения (желательно, написанного на Python)?Расширение Vim (через Python)?

В идеальном режиме в командной строке мне нужна удобная команда. Например.

ESC

: do_this

: do_that

ответ

19

ВИМ поддерживает скрипты в Python (и Perl, а также, я думаю).

Вам нужно только убедиться, что дистрибутив vim был скомпилирован с поддержкой python.

Если вы используете систему Linux, вы можете загрузить исходный код, а затем скомпилировать его с

./configure --enable-pythoninterp 
make 
sudo make install 

Внутри Vim, вы можете ввести

:version 

список доступных функций; если у него есть поддержка python, вы должны увидеть «+ python» где-нибудь («-python» в противном случае).

Затем, чтобы проверить использование модуля Python, вы можете ввести

:help python 

PS: если вы собираетесь компилировать источники VIM, убедитесь, чтобы проверить доступные параметры настраивают, возможно, потребуется для указания --with-python-config-dir.

PPS: для создания «пользовательской команды в командном режиме» (если я правильно понимаю, что вы имеете в виду), вы можете создать функцию «MyFunction» в скрипте vim (используя скрипт python или vim), а затем вызвать он с

:Call MyFunction() 

Проверить

:help user-functions 

подробности

+0

Hey orsogufo, У меня возникли проблемы с этим ... «+ python» не появляется даже после компиляции с параметром --enable-pythoninterp. Я установил python-config-dir в /usr/lib/python2.4/ Я использую стандартный дистрибутив Debian. Любые предложения? Я был бы очень благодарен. – AgentLiquid 2009-03-18 20:33:52

3

Имел проблемы для компиляции Vim с Python.

... проверка, если компиляции и флаги для Python являются вменяемыми ... нет:. ПИТОН ОТКЛЫ»в выводе ./configure

В Ubuntu 10.04 вы должны установить python2.6-dev.Флаги для ./configure являются:

--enable-pythoninterp 
--with-python-config-dir=/usr/lib/python2.6/config 

Убедитесь, что вы получили путь к каталогу, который содержит config.c файл. Также нет / в конце пути! Это вызвало у меня проблемы.

Смежные вопросы