Thread: [cream] FAQ corrections
Cream is a free, easy-to-use configuration of the Vim text editor
Brought to you by:
digitect
From: Kai B. <Kai...@gm...> - 2007-08-26 19:43:24
|
Hello, I think the following information on <http://cream.sourceforge.net/faq.html> is wrong und should be corrected: "How can I prevent Cream from loading my Vim plugins? Vim plugins will not be loaded (via :set noloadplugins control) if variable g:CREAM_NOVIMPLUGINS is set to "1". This can be accomplished either in cream-user or cream-conf." Using cream-user doesn't work. cream-user.vim is executed after the plugins are loaded. "Order of load is as follows: 1. $CREAM . "cream-conf.vim" 2. g:cream_user . "cream-conf.vim" (overwrites 1.) 3. $CREAM . "cream-user.vim" (VimEnter autocmd event) 4. g:cream_user . "cream-user.vim" (VimEnter autocmd event) 5. ~/.cream/views/.viminfo 6. $CREAM . "cream-conf.vim" (BufEnter autocmd event) 7. g:cream_user . "cream-conf.vim" (BufEnter autocmd event.)" cream-conf.vim and cream-user.vim are executed only once. Happy Vimming! -- Kai Borgolte, Bonn |
From: Steve H. <dig...@da...> - 2007-08-27 00:02:54
|
On Sun, 2007-08-26 at 21:43 +0200, Kai Borgolte wrote: > > I think the following information on > <http://cream.sourceforge.net/faq.html> is wrong und should be > corrected: > > "How can I prevent Cream from loading my Vim plugins? > > Vim plugins will not be loaded (via :set noloadplugins control) if > variable g:CREAM_NOVIMPLUGINS is set to "1". This can be > accomplished either in cream-user or cream-conf." > > Using cream-user doesn't work. cream-user.vim is executed after the > plugins are loaded. Thanks for noting this, I've fixed the page. -- Steve Hall [ digitect dancingpaper com ] :: Cream... usability for Vim :: http://cream.sourceforge.net |
From: Kai B. <Kai...@gm...> - 2007-08-27 18:58:42
|
Steve Hall wrote: > Thanks for noting this, I've fixed the page. Thank you! How about my other point? The FAQ's answer about config files is IMHO misleading. Here is my suggestion, in the hope I understood the procedure: === How are system-wide customizations loaded? Do user preferences override these global settings? Order of load is as follows: 1. $CREAM . "cream-conf.vim" (sourced by cream.vim) 2. g:cream_user . "cream-conf.vim" (sourced by cream.vim) 3. ~/.cream/views/.viminfo 4. $CREAM . "cream-user.vim" (sourced by VimEnter autocmd event) 5. g:cream_user . "cream-user.vim" (sourced by VimEnter autocmd event) Any setting or function found early will be active unless a later step overwrites it. cream-conf.vim is expected to define and to call a function Cream_conf_override() - see cream-conf.example.vim. The same function is then assigned to the BufEnter autocmd event. So, if present, in 1 the system wide Cream_conf_override() is defined and executed once. Then in 2 it is overwritten, if both present, by the user Cream_conf_override(), which is called too. Later *with every buffer switch* the function will be called again. Make global settings as light as possible. Don't set personal preferences unless they are mandated for all editing. Even then, a personal preference set within a buffer will override anything else since no autocmd event will intervene. The user's Cream_conf_override() also takes precedence. Power to the people! :) === OTOH assigning the global config file/function to BufEnter looks weird for me. Is it work in progress? For the case of g:CREAM_NOVIMPLUGINS I neither see why is has to be set (multiple) in Cream_conf_override() nor why it has to be an extra variable at all. As far as I can see it is sufficient to set noloadplugins in one of the cream-conf.vim outside the function definition. -- Kai Borgolte, Bonn |
From: Steve H. <dig...@da...> - 2007-08-27 23:49:22
|
On Mon, 2007-08-27 at 20:58 +0200, Kai Borgolte wrote: > > How about my other point? Sorry, I didn't quite grok it and should have asked... > The FAQ's answer about config files is IMHO misleading. Here is my > suggestion, in the hope I understood the procedure: > > === > How are system-wide customizations loaded? Do user preferences > override these global settings? > > Order of load is as follows: > > 1. $CREAM . "cream-conf.vim" (sourced by cream.vim) > 2. g:cream_user . "cream-conf.vim" (sourced by cream.vim) > 3. ~/.cream/views/.viminfo > 4. $CREAM . "cream-user.vim" (sourced by VimEnter autocmd event) > 5. g:cream_user . "cream-user.vim" (sourced by VimEnter autocmd event) I think the FAQ order is correct: 1. $CREAM . "cream-conf.vim" (sourced by cream.vim) 2. g:cream_user . "cream-conf.vim" (sourced by cream.vim, will overwrite 1) 3. $CREAM . "cream-user.vim" (VimEnter autocmd event) 4. g:cream_user . "cream-user.vim" (VimEnter autocmd event) 5. ~/.cream/views/.viminfo 6. $CREAM . "cream-conf.vim" (BufEnter autocmd event) 7. g:cream_user . "cream-conf.vim" (BufEnter autocmd event, will overwrite 1 if exists) although I agree that it isn't very clear. The bottom of cream-autocmd calls cream-user on event VimEnter which happens prior to viminfo IIRC. Thus lines 3,4,5. At the top of the same file, Cream_conf_override() is called by BufEnter, thus lines 6,7. > Any setting or function found early will be active unless a later > step overwrites it. > > cream-conf.vim is expected to define and to call a function > Cream_conf_override() - see cream-conf.example.vim. The same > function is then assigned to the BufEnter autocmd event. So, if > present, in 1 the system wide Cream_conf_override() is defined and > executed once. Then in 2 it is overwritten, if both present, by the > user Cream_conf_override(), which is called too. Later *with every > buffer switch* the function will be called again. > > Make global settings as light as possible. Don't set personal > preferences unless they are mandated for all editing. Even then, a > personal preference set within a buffer will override anything else > since no autocmd event will intervene. The user's > Cream_conf_override() also takes precedence. Power to the people! :) > === > > OTOH assigning the global config file/function to BufEnter looks > weird for me. Is it work in progress? For the case of > g:CREAM_NOVIMPLUGINS I neither see why is has to be set (multiple) > in Cream_conf_override() nor why it has to be an extra variable at > all. As far as I can see it is sufficient to set noloadplugins in > one of the cream-conf.vim outside the function definition. (I'm not going to get time this evening to discuss this, I'll try to continue it tomorrow.) -- Steve Hall [ digitect dancingpaper com ] :: Cream... usability for Vim :: http://cream.sourceforge.net |
From: Kai B. <Kai...@gm...> - 2007-08-28 07:40:20
|
On Mon, 27 Aug 2007 19:49:09 -0400, Steve Hall wrote: >The bottom of cream-autocmd >calls cream-user on event VimEnter which happens prior to viminfo >IIRC. A test shows it doesn't: C:\Programme\vim\vim71\cream\cream-conf.vim --- if exists("g:VIMINFOLOADED") let g:TESTCREAMCONF =3D 1 endif --- C:\Programme\vim\vim71\cream\cream-user.vim --- if exists("g:VIMINFOLOADED") let g:TESTCREAMUSER =3D 1 endif --- :let g:VIMINFOLOADED =3D 1 Restart Cream :echo g:TESTCREAMCONF E121: Undefined variable: g:TESTCREAMCONF E15: Invalid Expression: g:TESTCREAMCONF :echo g:TESTCREAMUSER 1 --=20 Kai Borgolte, Bonn |