[Ilugc] Switching between sets of keybindings in vim

  • From: sykora.skywave@xxxxxxxxx (Sykora)
  • Date: Sat May 10 14:42:17 2008

On 19:28:24 May 09, Arun Tejasvi Chaganty wrote:
There are times where I want to switch between an entire set of
keybindings/commands depending on the type of file I'm editing. For
example, if I'm using C/C++, I'd like to (hypothetically) have a
shortkey <C-f> to create an for loop block as such:
for (i=0;i<b;i++) {
???<TAB>
}

But in python, I'd like it to do;
for i in range (b):
<TAB>

or it's equivalently for bash or any other language.

You can do this with filetype plugins. These are plugins that are
loaded only when a particular filetype is being edited.

Basically, you put whatever filetype specific commands you want in the
file ~/.vim/ftplugin/<filetype>.vim

where <filetype> is the filetype, eg c.vim for c files, python.vim for python.


See :help filetype and :help filetype-plugins

Another thing I'd like to do is create a generic function to insert
snippets like <C-I>f would insert a for loop, <C-I>i a if block, etc. My
doubt is how to send the 'f', 'i' as arguments to a vim function, and in
the function how to access the filetype, etc.

Check out the vim scripts page on www.vim.org. A _lot_ of scripts
already exist which do exactly what you're asking.

HTH

Other related posts: