![]() Home Features Screenshots Keyboard Shortcuts License FAQ Installation Spell Check Other Files ToDo List ChangeLog Mail List Links Vim Contribute
|
Frequently Asked Questions (FAQ)Using Cream
Advanced Users
Developers
Using CreamHow can I make tab keystrokes insert spaces rather than the default tab character? Turn on Auto Wrap in the Settings menu. Auto Wrap also links line wrapping at the Wrap Width (also in Settings), but if you don't like this, just set your width to something high, like 9999. Change your tab spacing with Tabstop Width under Preferences in the Settings menu. Column Select doesn't seem to work for me. You can start column mode with Alt+Shift+motion key or from the Edit>Column Select menu. Once in column mode, extend the selection by by holding down the Shift key (and optionally, the Alt key) while using other motion keys. End the selection by using motion keys or mouse keys without Shift. Please see the Keyboard Shortcut section "Column Mode" for more specifics. How can I start command mode for the occasional traditional Vim :command? Ctrl+L switches to normal mode along with it's alternative Ctrl+\,Ctrl+N. Ctrl+O switches to normal mode for only a single command. You can also select Expert Mode from the Settings menu to toggle between Normal and Insert mode with the Esc key. Will Cream ever have a "tabbed" multiple document interface (MDI)? Multiple open documents displayed in tabs across the top or bottom of the program window have become common and popular. However, Vim does not yet support this feature and Cream is unable to implement a respectable emulation of it. We promise that Cream will make it available if Vim ever supports this feature. We have recently found an alternative that may serve you as well or better than tabs. Using the Alt+W key combination opens the Window menu and displays the open file list at its bottom. If you try this a few times, you may come to appreciate it's screen saving "retractableness" and never miss tabs again. (Hint: Remember that when the menu pops open you can use the Arrow Up key to go instantly to the bottom of the menu.) Advanced Vim UsersHow can I use my personal customizations with Cream? Beginning with Cream version 0.29, all user customizations belong in an automatically created directory $HOME/.cream, for both Windows and Linux. (You can enter A file called "cream-user.vim" found here will be loaded following startup. We recommend that all customizations be placed here, so they are able to over-ride any Cream settings if desired. A file called "cream-conf.vim" found here will be loaded at the beginning of startup. This file (optionally) conditions variables used during loading of Cream scripts. You can read the distributed "cream-conf.example.vim" for more information. All add-ons (actually all *.vim files) found in a subdirectory .cream/addons/ will be loaded. User spelling dictionaries (cream-spell-dict-usr_?.vim) found in .cream/spelldicts/ will be referenced when using spell check features. You can also force Cream to look elsewhere for user files by specifying the path in an environmental variable $CREAM_USER. (Requires a trailing slash.) All files should be conforming Vim script. Also, be aware that Cream requires complex refinements that may present certain difficulties in customization, such as multi-platform considerate formats and structures, Unicode flexibilities, or auto command behavioral over rides. How can I use customizations to Cream system wide? Cream will source a file $CREAM/cream-user.vim just prior to sourcing the user's cream-user.vim mentioned above. How are system-wide customizations loaded? Do user preferences override these global settings? Order of load is as follows:
Any setting or function found early will be active unless a later step overwrites it. Also note that 7 will replace the entire behavior found in 6 since the file is structured as a single function whose name will overwrite the previously existing function of the same name. 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 also takes precedence. Power to the people! :) I love everything except [feature x]. Is there any way I can turn it off? As described just above, Cream will load a user "cream-conf.vim" file that can be made by renaming the distributed "cream-conf.example.vim". It provides a few Power User options and over-rides documented items within that file that are not accessible via the menus. We strongly suggest using "cream-user.vim" instead, and refer you to cream-conf.vim only in cases where sophisticated autocommands or Cream loading needs to be shaped beyond what the menus provide. Do you ever plan on making Cream work (better) in terminal/console versions? We've tried but there are many limitations within terminals that restrict the feature set including keystrokes that some of our base functions rely upon. Along with menu, display, and platform inconsistencies, terminal support for Cream would be a severe subset of the project's efforts. We would like to offer this, but with such short resources, it appears unlikely that significant progress could be made on this front. Sometimes I want to just use just a subset of Cream, for example, can I turn off Cream's keystrokes? There are various ways of using more or less Cream in your Vim: 0. Please read the comments above on using Ctrl+L (alternative Ctrl+\,Ctrl+N) and Ctrl+O to enter Normal mode two different ways. 1. Select "Expert mode" from the Settings > Preferences menu. This maps the Esc key as a toggle between standard Cream behavior and Vim's normal mode. All of the Cream configuration is preserved, except the function of the Esc key and use of visual mode instead of select mode in most cases. 2. Use one of the three alternate behaviors available in the Settings > Preferences > Behavior menu:
Note these last two menu selections are not preserved session to session. However... 3. Cream provides an advanced user configuration option (in the cream-conf.vim file) which can effectively maintain the above three behavioral settings each restart if you need this for some reason. 4. Use both separately! As of version 0.29, Cream no longer alters any aspects of your Vim installation. Just use the Vim icon and the Cream icon to start separate, un-related sessions. How do Vim and Vi behavior settings differ from Expert Mode? When selecting one of these two behaviors, Vim is completely re-initialized to one of the text editor's two base behavior configurations (Vim or Vi). (You'll have to read Vim's manual for more.) These behavior configurations differ from Expert Mode in that they completely unload Cream. Expert Mode merely provides a trapdoor to Normal mode without changing any of the extensive Cream setup to preserve settings, menus, statusline, or any of the other thousands of things we've tweaked. Is there a way I can use the Cream installed on my Windows partition with my GNU/Linux Vim? Yes, see the question above for initializing Vim without the default vimrc. Cream has been planned to work equally well on both Windows and GNU/Linux. Note that we've experienced problems calling paths with spaces (ie "Program Files") and have been unable to work around by escaping them. You may have to use the 8.3 format for directory names ("PROGRA~1"). If installed per instructions, Cream does not require any specific environmental variables to be set. However, in some instances a user or system administrator may wish to use shell variables to control path locations or set up multiple users with a single installation. In such cases, the following optional environmental variables are available: Writable? $VIMINIT No 1 Start Vim and over-ride default vimrc. Should be in the form "source [path/filename]" and point to Cream's vimrc. $CREAM No 1 Location for the general Cream files. $CREAM_BAK Yes2 Location to place backup files. $CREAM_SWP Yes3 Location to place swap files. $CREAM_VIEW Yes Location to place view and viminfo files. (All retained preferences.) $CREAM_USER Yes4 Location to place user dictionaries, user scripts, user add-ons, etc. (See above.) Notes:
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. On startup I get: "Unable to use Cream bookmarking features, no compiled support for signs" Use the "--with-features=big" configure option before you compile. This will enable the GUI, signs, dialogs and many other useful Vim features that Cream depends on. (And that Vim's developers have spent a lot of time developing!) Note that this is the typical configuration for most larger distributions, but certainly not all of them. For more information see How can I get the Unix/X11 behavior where the middle-mouse button pastes a selection? Cream now has this as an option, just use Settings > Preferences > Middle-Mouse Pastes. Is it possible to overwrite Cream settings per filetype? To overwrite Cream settings you can do the same thing Cream does to override Vim settings--load an autocmd that calls a function to change the settings. In your cream-user file, create a function that handles your settings: function! MySettings() if &ft == "vim" let &tabstop = 6 endif (...other settings...) endfunction Then add an autocmd to call it that is activated whenever Cream/Vim starts, the current file is changed or made new: autocmd BufEnter,BufNewFile * call MySettings() You need to tell vim (and therefore by extension, gcream) not to fork and stay in the foreground with the "-f" flag. Therefore, from within your ~/.muttrc file, you'll want a line that looks something like:
Why is Cream sluggish when editing on a distant network? As of version 0.33, this issue has been mostly solved. On the outside chance you still experience this behavior, try to force the current directory to somewhere local by setting the g:CREAM_CWD variable in the cream-conf file. If that fails to fix the symptom, please let us know. DevelopersPlease see also the ASCII document "DEVELOPER.txt" in the package for additional ad hoc developer information. Why not just write a Cream Add-on that users can load from the menu? Please see the cream-templates.vim script we use to provide templates, too. Add-ons are essentially refined Vim plugins. Cream will autoload these (if placed in the $CREAM/addons subdirectory). The point is to make modules more automatic and accessible, while at the same time modularizing the project by reducing out portions of "optional" functionality. We even debated dumping the entire Insert and Format menu stuff here, but decided to reserve them for necessities. Recommended tips for authoring add-ons goes like this:
" list as an add-on if Cream project in use where
This call loads the values for selection of the addon in a dialog box, menu and allows it to be mapped to a "power key" combination which is retained across sessions. Example: " register as a Cream add-on What are some guidelines to consider if I want to submit a patch to Cream? Hopefully, patches will respect the general goals of the project. We're still in a fair amount of flux given Cream's immaturity at the moment, but here are a few principles to consider:
Nothing too special, except for a developer menu, the playpen and a few add-ons. These can be exposed simply by uncommenting a line toward the top of cream.vim that looks like: let g:cream_dev = 1 The menu makes jumping around the project files easier and the playpen is where some minor things are written and tested before becoming part of the project. The Add-ons Devel menu has a few functions that you won't find too helpful unless your specifically developing Vim or Cream. How can I use CVS to get Cream? CVS is a tool for advanced developers, and explaining it's use is far beyond the scope of our project. Feel free to browse the Cream CVS repository or read more about this powerful tool in the free on-line CVS Book (direct link, 1st edition HTML).
|