Cream : : a modern configuration of the Vim text editor

features

Following are all the features that Cream directly supports through pull-down menus and/or keyboard shortcuts.

### Basic Features

- Runs on Windows 95-XP, and on all GNU/Linux and BSD platforms.
- Edits Microsoft, Unix and Apple format text documents.
- Supports editing of very large files, size is limited by diskspace.
- Encoding support for 38 varieties of 8-bit, 2-byte, and Unicode.
- A single editing mode. (Cream does not use Vim's modal editing unless turned on from the Preferences menu.)
- Tabbed document interface as seen in this screenshot.
- Have multiple documents open at a time (Alt+W, listed in the Window menu)
- User-selected font, window size/position and most other settings are retained and restored automatically.
- Each edited file retains its last view.
- Simple, intuitive keyboard shortcuts to move and select text. Arrow keys, Page Up/Down, Home and End keys move the cursor and adding the Shift key selects text.
- Standard and intuitive menus. All functionality is available through pull down menus which indicate available keyboard shortcuts.
- Syntax highlighting makes reading code easier for more than 350 programming languages, or can be turned off.
- Intuitive status line can be toggled off, however by default it indicates considerable information unobtrusively:
  (click to enlarge)
- Toolbar for commonly used actions can be turned off.
- Undo/Redo are unlimited (Ctrl+U and Ctrl+Y).
- Word wrap toggle (Ctrl+W).
- Automatic text indention as you type. Can be turned off.
- Print (Ctrl+P) will also prompt to print only the selected lines if a selection exists.
- Block indention or unindention (with selection, Tab and Shift+Tab).
- Show/Hide "invisible" characters like tabs, returns and trailing spaces (F4).
- Tile multiple open documents vertically or horizontally.
- Recently opened files list (in the File menu, Alt+F).
- Quick key to exit (Ctrl+F4).
- Preference option for Unix/X11-style middle mouse button behavior to paste the current selection.
- Word count an individual word or the document's total words.
- Find and Find/Replace dialogs use intuitive search, with Regular Expressions as an option (Ctrl+F and Ctrl+H).
- Find Next/Previous under cursor (F3 and Shift+F3).
- Convert existing tabs to spaces of the current tabstop width (Format menu).
- Bookmarking with visible margin marks (up to 26 per file) (Alt+F2 and F2).
- Spell checking with alternative spelling suggestions. Many languages are supported.
- Go to specific line number or percentage of files (Ctrl+G).
- Auto Wrap formatting wraps text to any margin width ("Wrap Width") while you type and automatically converts tab characters to the equivalent number of spaces (Ctrl+E).
- Toggle insertion of tab characters or the equivalent number of spaces (Ctrl+T). (Over-ridden by toggling the Auto Wrap feature described above.)
- Text justification to left, center, right or full alignment of selected text or current paragraph. (Toolbar or Format menu)
- Quick Wrap re-formats existing text to Wrap Width and justification margin with hard returns added at the end of each line (Ctrl+Q). Quick Un-Wrap removes these existing wraps in text (Alt+Q,Q). Both accommodate existing bullets (currently @, o, *, -, +, subject to change) and nested reference marks such as ">" characters in email. Quick Wrap and Un-Wrap work on any selected text or on the current paragraph with nothing selected. (A paragraph is defined by text having two returns at both the beginning and the end.)
- Line join re-formats a selection by removing hard returns.
- Both Quick Wrap and Justification remove repetative whitespace now if activated twice within a second or two. This means that text formerly center or full justified can be compressed back to the left simply by repeating the Quick Wrap keystroke, toolbar justification click or menu selection.
- Auto-correct spelling which corrects common spelling errors as you type.
- Insert current date/time (F11 opens a menu of possible formats, F11 x2 inserts the last format used).
- Auto Indent toggle.
- Capitalization formatting of selection or current word with Title, UPPER, lower and rEVERSE case (F5 and combinations).

### Advanced Features

- Conversion between Unix, Windows and Apple platform format files.
- Keyboard mapping choices for one of 39 available language or encodings.
- Current line highlighting.
- Color themes provide change of scenery during long editing sessions or various lighting conditions.
- Word completion (Ctrl+Space, Ctrl+Shift+Space) matches other words in the file you've already typed.
- Macro record (Shift+F8) many keystrokes and commands and play them back with one keystroke (F8).
- Find/Replace in multiple files, through a simple dialog. No external programs required!
- Toolbar able to be toggled on or off.
- Calendar window (Ctrl+F11).
- Column selection mode (Shift+Alt+{motion key or mouse}). Select, insertion, delete and backspace in columnar areas, not just in rows.
- Open file explorer to current directory (Alt+W,X).
- Open a path/filename under the cursor or selected (Shift+Enter). Cream will also open a URL (beginning "http://" or "www" in the default web browser.
- Insert characters by decimal value (Alt+,). Easily list all available characters on your system (Alt+, x2).
- List the decimal, hexidecimal, and octal value of the character under the cursor (Alt+.).
- Insert character special two-character digraph (Ctrl+K). List your system's available digraphs (Ctrl+K x2).
- Character line insertion with any character (Shift+F4).
- Character line insertion the width of the line above with any character (Shift+F4 x2).
- Email thread levels are indicated by subtle color fade. Deeper levels (more indentations) have less contrast.
- Syntax highlighting of special text file elements such as:
  - Email signature: separator "`--` " on a line by itself and lines following.
  - Bullets.
  - Section titles prior to fold markers ("{{{1", etc.).
  - Time stamp tag and value.
  - Filename stamp tag and value.
  - Character lines
- Insert text filler, Lorem ipsum. (Direct Latin quotations from Cicero's 45 B.C. "de Finibus Bonorum et Malorum", used commonly for this purpose since the 1500's.)
- Advanced user configuration via manual config file. (FAQ)
- Expert users can still access the traditional Vim "normal mode" by pressing Ctrl+L and Ctrl+O with their respective behaviors.)

### Programmer Features

- Context sensitive completion (Vim's Omni completion feature) (Ctrl+Enterh, Ctrl+Shift+Enter).
- Block comment and un-comment selections (F6 and Shift+F6).
- Ctags navigation. (Requires installation of the free Exuberant ctags or other similar tag navigation program.) Through Alt+arrow keys, move back and forth between previously visited tags (Alt+Left/Right), move to function or variable's definition (Alt+Down), or close referenced file and return (Alt+Up).
- Function and variable list available for the current file (Ctrl+Alt+Down). (Requires Ctags)
- Template completion based on file type (Esc+Space). (See Tools menu for list of available templates.)
- Line folding intuitively hides entire sections with a keystroke (F9 and combinations).
- Pop up prototype and information menu ( Alt+( ). View the function's prototype under the cursor without having to open the file with the definition.
- Insert line numbers for current selection, begin with any value.
- Soft Tabstop setting allows existing text to be displayed by Tabstop Width while new editing uses this alternate setting, inserting tabs and spaces to accomplish the new indention.
- Diff mode to see differences between two files.
- Terminal mode menus (console menus) (F12, console only).
- Cream, Cream Lite, Vim or Vi editing behavior setting.
- Expert mode, an option to use the Esc key to toggle back and forth between Vim's normal and insert modes.
- Multiple user configuration from a single installation. (FAQ)

### Add-Ons

Cream provides additional functionality through add-ons, modules that can provide a vast library of functionality specific to your tastes.

- Color Invert -- Inverts a standard hexidecimal ("ffffcc"), abbreviated hexidecimal ("fc3"), or decimal ("255,204,0") RGB value.
- Convert Text to HTML -- Converts a text file to HTML by substituting a few special characters to specified character equivalents, tab and space indenting to none-breaking spaces and hard returns to `<br>` tags. Wraps the document in basic HTML header and footer structures.
- Convert Hex to ASCII and ASCII to Hex. Works on selection or entire file if nothing selected.
- Cream Config Info -- Provides quick diagnostic information about Vim and Cream.
- Ctags Generate -- Using the third party Exuberant ctags application, generate a tag file for quickly navigating a file of any single directory.
- Daily Read -- Choose a document to read in entirety over a year and have Cream select and present that day's portion, including a day's context on either side. Great for meditative or religious readings.
- De-binary -- Utility tries to recover ASCII text in binary files. All non-readable characters are deleted. Useful for recovering information out of corrupted word processing files among other things.
- Email Prettyfier
  - uncondenses "`>>>`" thread indicators to "`> > >` " in the current document.
  - Collapses empty lines to one.
  - Option to simplify email headers to two different formats
- Email Munge -- Rewrite a selected email address to a format still readable by humans but no longer vulnerable to being harvested by web robots for spam lists. Examples:

  > |username|AT|domain|DOT|com|
  > [username](A)[domain]*[com]
  > useNrnaOme@SdoPmaAin.cMom (remove "NOSPAM")
  > username___in.com (insert "@doma")

- Encrypt -- "Encrypts" the current file or selection with several different possible types of "encryption":
  - algorithm -- Converts all characters to decimal (numerical) values. While no mathematical encryption takes place, the document is readied for some an overlaying encryption algorithm.
  - GnuPG -- Encrypt/De-encrypt selected block or file using GNU Privacy Guard. (Must be installed on system.
  - h4x0r -- Converts certain characters to visually similar equivilents (e.g., "E" => "3", "S" => "$"). So called for the slang nickname given such spellings found in certain chat forums.
  - HexMe -- Converts a string to hexidecimal or back again. (Can not handle characters with decimal values above 255.)
  - rot13 -- Simply rotates each (English) alphabetic character 13 places forward in the alphabet (e.g., "A" => "N", "B" => "O", "C" => "P"). Given the English language's count of 26 characters, a second rotate will "unencrypt" the first rotation.
- Helptags Current Directory -- Run Vim's `:helptags` command on all text files in the the current file's directory. (Useful file sets organized around Vim's tag and link navigation system.)
- Highlight CtrlChars -- Highlight characters in the current file with decimal values between 1-31, except tabs (9), newlines (10), and returns (13).
- Highlight Multibyte -- Highlight characters in the current file with decimal values between 127-255. (These are characters that are usually interpreted differently across languages (encodings) and operating systems.)
- Invert Selected Lines -- Reverse selected lines so that the first is last and vice versa.
- Invert Selected String -- Reverse the characters within a selection.
- Slide Generator -- Creates a website slide show from all web-type graphic files (.jpg, .gif, .png) found in a user-selected directory. (Requires the ImageMagick convert utility.) Will automatically thumbnail all graphics in a directory and create a master webpage displaying these "slides", each of which link to a page for each individual image at full size. Does not alter any existing graphics.
- Sort, Selection/Inverse -- Sort or reverse sort selected lines alphabetically by first column.
- Sort, File -- Sort the current document alphabetically by any column number using the external sort command on Microsoft Windows or Linux/Unix.
- Stamp -- A series of add-ons to insert various useful bits of information automatically within the current file. The stamp occurs at the first location of the stamp tag that is found. All characters following the case-sensitive stamp tag are replaced with the stamp up to a single quote, double quote or the end of the line. White space following the stamp tag is maintained so the stamp can be aligned by the user. In each case, the global variable in which the tag is stored is given so that you can provide replace it with your own tag.
  - Filename -- The filename or path and filename can be inserted following the tag (default: "Filename:", global: "g:CREAM_STAMP_FILENAME_TEXT").
  - Time -- Various expressions of the current date and time can be inserted following the tag (default: "Updated:", global: "g:CREAM_TIMESTAMP_TEXT"). Note that if your system (like all known versions of Microsoft Windows) does not represent the timezone value in the standard strftime("%Z"), you can override this in the variable "g:CREAM_TIMEZONE".
- Uniq Selected Lines -- Condense duplicate adjacent lines (sort first!) in a selection.