views:

1240

answers:

4

Howdy,

is it possible to extend vim functionality via custom extension (preferably, written in Python)?

What I need ideally is custom command when in command mode. E.g.

ESC

:do_this

:do_that

+12  A: 

vim supports scripting in python (and in perl as well, I think).

You just have to make sure that the vim distribution you are using has been compiled with python support.

If you are using a Linux system, you can download the source and then compile it with

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

Inside vim, you can type

:version

to list the available features; if it has python support, you should see a '+python' somewhere (a '-python' otherwise).

Then, to check the usage of the python module, you can type

:help python

P.S: if you're going to compile the vim sources, make sure to check the available configure options, you might need to specify --with-python-config-dir as well.

P.P.S: to create a "custom command in command mode" (if I understand correctly what you mean), you can create a function "MyFunction" in a vim script (using python or the vim scripting language) and then invoke it with

:Call MyFunction()

Check

:help user-functions

for details

Paolo Tedesco
Hey orsogufo,I'm having trouble with this ... the "+python" doesn't show up even after compiling with the --enable-pythoninterp option. I set the python-config-dir to /usr/lib/python2.4/I am using a standard Debian distro.Any suggestions? I'd be extremely grateful.
AgentLiquid
@shafik23: this is quite strange; are you sure the compilation was successful? did you receive any warning? The best suggestion I can give you is to read carefully the output of configure and make... and of course, if you find something strange you can ask a question! Cheers
Paolo Tedesco
sparklewhiskers
+4  A: 

Yes it is. There are several extensions on http://www.vim.org/scripts/index.php

It can be done with python as well if the support for python is compiled in.

Article about it: http://www.builderau.com.au/program/python/soa/Extending-Vim-with-Python/0,2000064084,339283181,00.htm

Google is our friend.

HTH

Zsolt Botykai
+3  A: 

Checkout this excellent presentation on the topic: Python and vim: Two great tastes that go great together

Ryan Cox
+1  A: 

Here is another useful blog post about it.

Krzysiek Goj