Loading ...
Sorry, an error occurred while loading the content.

Re: Plugin for specific file type

Expand Messages
  • Tony Mechelynck
    ... If it s a bulky script, you could put it someplace out of the way (let s say, name it ~/.vim/macros/foobar.vim ) then add several one-liners to source it:
    Message 1 of 5 , Apr 29, 2011
    • 0 Attachment
      On 28/04/11 17:55, Ben Fritz wrote:
      >
      >
      > On Apr 28, 11:26 am, JuanPabloAJ<jabar...@...> wrote:
      >> but, if this plugin is for many language,
      >> I cant use the&ft variable ?
      >>
      >
      > Sure you can, but that's not what you asked. You have a few options:
      >
      > 1. Always load the plugin for all file types by placing it in your
      > ~/.vim/plugin directory, but for every feature in the plugin, make it
      > do nothing unless&ft is the desired file type.
      > 2. Only load the plugin for certain file types, by using the filetype
      > plugin method mentioned, and copying it for every desired file type.

      If it's a bulky script, you could put it someplace out of the way (let's
      say, name it ~/.vim/macros/foobar.vim ) then add several one-liners to
      source it: e.g. either add

      runtime macros/foobar.vim

      either as part or all of each of
      ~/.vim/ftplugin/c.vim
      ~/.vim/ftplugin/cpp.vim
      ~/.vim/ftplugin/css.vim
      ~/.vim/ftplugin/javascript.vim

      or else place in your vimrc the single autocommand (this is method 3 below)

      autocmd FileType c,cpp,css,javascript runtime macros/foobar.vim

      For both of these (which correspond to methods 2 above and 3 below) your
      script will be sourced once for each editfile to which it applies: so it
      should use :setlocal (not :set), :lcd (not :cd), :let b:var = value (not
      :let var = value) etc.

      One example of the latter would be, quite near the begin of your script:

      if exists('b:did_run_foobar')
      finish
      endif
      let b:did_run_foobar = 1

      to avoid sourcing the script twice for the same buffer.

      > 3. Only load the plugin for certain file types, by sourcing the script
      > in a FileType autocmd for the desired file types.
      > 4. Some other method you may be able to think of, Vim has lots of ways
      > to automatically do arbitrary things, including the sourcing of
      > scripts.
      >

      Best regards,
      Tony.
      --
      If God wanted us to be brave, why did he give us legs?
      -- Marvin Kitman

      --
      You received this message from the "vim_use" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php
    Your message has been successfully submitted and would be delivered to recipients shortly.