Vim is a scriptable editor which includes a built-in scripting
language. The problem with the built-in language is that it is yet
another language for a programmer to learn and remember. In my opinion
it would be more efficient if Vim scripts could be written in a
language that the programmer already knows, rather than having to
learn Vim’s special language. The built-in scripting language is
not hard to learn, as programming languages go. But, in my experience,
the more programming language syntaxes one has to remember, the harder
it is to remember them all in sufficient detail that one can be
productive with them all.
So, the goal of this article is to show how Vim can be scripted
with the normal programming languages that programmers already know,
like Perl, Python, Ruby, etc. Vim supports alternate scripting
languages with a feature called “Interfaces.”
The following languages are among those that are supported:
Getting Help in Vim
You can jump directly to the help page for a particular language
by typing :help
. For example,
- help perl
- help python
- help tcl
- help ruby
There are several requirements that have to be met before Vim will
an alternate scripting language.
- Support for the language must be selected at compile time.
When Vim is built, there are options to either include or exclude
language interfaces. The
command will show which
ones are available in a given instance of Vim.
- The dll or shared library for the language must be available
at run-time. For example, Perl support requires the perl814.dll to be
available in the PATH.
- The “word size” of the dll or shared library must
match with the Vim executable. In other words, if Vim is a 32-bit
executable, then perl814.dll must be a 32-bit dll. You can’t
mix 32-bit and 64-bit components.
Setup the Perl
Interface in Vim on Windows
Install the Perl
Version Required by Vim
You should download Perl from Strawberry Perl
prefer Strawberry Perl because it is completely open source, whereas
ActiveState Perl is partly proprietary.
You should choose a “32bit PortableZip edition”. Vim
is 32-bit only, so it requires a 32-bit Perl. The PortableZip version
will allow you to unzip it where ever you prefer. This is important if
you already have a 64-bit Perl as your primary version. I would
suggest unzipping it into C:\opt\perl-for-vim. You also have to match
the Perl version with your Vim version because the name of the dll
that Vim is hardcoded into Vim.
- For Vim 7.4 get Perl 5.14.x.x – 32-bit PortableZip
- For Vim 7.3 get Perl 5.12.x.x – 32-bit PortableZip
Unzip into C:\opt\perl-for-vim. I suggest using 7-Zip
rather than Windows' built-in Zip
functionality because Windows' Zip/Unzip is very slow. 7-Zip is much
Put Perl Dll in the PATH
If this is the only version of Perl you have installed, you
should put it into the system path.
If you have another version of Perl, and this installation is
just for Vim, you can add it to the PATH inside your _vimrc startup
file. Edit C:\Users\[yourid]\_vimrc. Add these lines to the top of the
" This puts the Perl dll in the PATH.
let $PATH = 'C:/opt/perl-for-vim/perl/bin;' . $PATH
Test Vim’s Access to Perl
Add these lines to _vimrc and restart Vim:
perl VIM::Msg("The Perl interface is operational.");
If you see a popup dialog with the above message, then it is
Write a Perl Script