On Tuesday, 28 August, 2012 at 04:12:26 BST, Ben Fritz wrote:
When I try this:

   autocmd BufRead * if &ft == 'perl' | setlocal makeprg=perl\ -cw\ % | endif

makeprg doesn't get set, I guess because vim sets the filetype to "perl" only 
after BufRead has happened (the :help doesn't say). The :help does hint at using 
BufWinEnter instead, which works for this case, but it seems suboptimal having these 
autocmd commands executed every time I display the buffer, when really I only need them 
executed the once, after buffer read/load.

The event you want for the loading of the file is FileType. As mentioned before.

But FileType autocmds get executed at every display of the buffer, not just 
when loading the file.

autocmd BufWinEnter * if &ft == 'perl' | exe input("BufWinEnter") | endif
autocmd FileType perl exe input("FileType")

These both wait for input when bringing forth via :b. I suppose I'd just have 
to set and check for a 'loaded' variable at the beginning of my commands.

--

.

--
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

Reply via email to