(Please help us keep track of all the issues and name your report/request "C-Support: <title>")

install details

Copy the zip archive cvim.zip to $HOME/.vim/ (Linux/Unix) or $HOME/vimfiles
(on the Windows platforms) and run
unzip cvim.zip
If you have already an older version of this plug-in and you have modified the
template files you may want to save your templates first or copy the files from
the archive by hand. See also the file README.md within the zip file.

To enable the tools for cmake or doxygen, add these lines to ~/.vimrc :

let g:C_UseTool_cmake = 'yes'
let g:C_UseTool_doxygen = 'yes'

For how to enable the Doxygen templates, see Chapter 1.10.1 of the documentation:

- Plugin loads faster: loading the templates is delayed until the first use.
- Plugin now works with pathogen.vim.
- Menus will always be generated (for the use with :emenu).
- Bugfix: no local templates available with a system-wide installation (thanks to Iain Arnell).
- Several improvements.

- New hotkey \cx C to C++ comments and vice versa.
- Several hotkeys allow a range, e.g. '3\cl' (see help text and c-hotkey.pdf).
- Improved prototype picking: \nf, \np picks up a function prototype,
\nm picks up a method prototype (see documentation for more).
- include-statements will now be inserted in the actual line (before: new line
below the actual line).
- Several minor improvements.

- A makefile can be run with C-F9
- Linking ( Run menu, \rl, \rr ) will be suppressed if buffer contains no main function.
- Bugfix: correctly deactivate unwanted compiler messages in a quickfix buffer.
- Several minor improvements.

- New hotkeys \rmc (run 'make clean') and \rme (executable to run).
- Hotkeys for make are working when in a makefile.
- Linker errors and errors during a make will be shown in a quickfix buffer.
- Bugfix: detection of a systemwide installation can fail.
- Bugfix: preprocessor directive '#if 0 #endif' not working.

- The plugin now handles different template styles without editing and reloading the main template file.
- The number of template styles is not limited.
- New hotkey and ex-command to switch template styles.
- Template styles can automatically be related to file extensions.
- indent(1) errors will be presented in a quickfix error window.
- Comment alignment improved.
- Minor improvements.

+ Definition and implementation of classes have now different templates and menu entries.
+ Accessor methods (get/set) can be generated.
+ New templates: everything other than language keywords comes from a template (and is user changeable).

+ Kernighan & Ritchie style for block statements can be enabled.
+ Changes to make plugin compatible with Vim 7.
+ Set C/C++ file type for source files which should not be preprocessed (*.i, *.ii).
+ Some minor improvements.

+ Remove "#if 0 ... #endif" from the inside.
+ Change C comments to C++ comments and vice versa.
+ try..catch / catch / catch(...) now can be set surround a marked area.
+ Prototype picking improved (for C++).
+ A hardcopy shows the localized date and time in the header line.
+ New help menu entry in the main menu of this plugin (shows the plugin documentation).
+ Switch between corresponding source and header files with <S-F2> if the plugin a.vim
is present.
+ Plugin can be used with autocompletion for (, [, and { .

+ Run buffer through splint (A tool for statically checking C programs; see
http://www.splint.org). An error window will be opened; quickfix commands can be used.
+ Set buffer related command line arguments for splint.
+ Line end comments start in a fixed column (can be set from the menu).
+ Spaces in path names and file names are now possible.
+ Template files and snippet files are no longer kept in the list of alternate files.
+ Some minor improvements.

+ Running a program:
(1) Run program from the gVim command line.
(2) Run program and direct the output into a window with name "C-Output".
(3) Run program in an xterm.
+ Command line arguments are now buffer related (each buffer can have its own arguments).
+ Code snippets can be protected from being indented during insertion.
+ Picked up prototypes will be deleted after insertion.
+ A code snippet with the file name extension "ni" or "noindent" will not be
indented on insertion.
+ for- and calloc-/malloc-idioms improved.
+ Bug fixed (word list handling).

+ When the comment style "C" is active the menu entry "Comments.code->comment" turns a marked region in one multiline C-comment.+ The menu entry "Comments.comment->code" turns marked multiline C-comment back into code.+ A marked region can be surrounded by a for-, if, if-else, while-, do-while-statement (with indentation).+ The menu entry "Snippets.make prototype" makes a C- or C++-prototype from the current line or marked region and puts it in an internal buffer.+ The menu entry "Snippets.add prototype" also makes a C- or C++-prototype from the current line or a marked region and adds it to the internal buffer.+ The menu entry "Snippets.put prototype" inserts all gathered prototypes below the current line. + Tag substitution rewritten (Some characters in a substitution text for a tag prevented the tag from being substituted).

+ C-style comments AND C++-style comments are supported now.+ The menu entry 'Comments->Comment style ..' switches the styles (toggle).+ Block comments are now read as templates or skeletons from files: Frame Block, Function Description, Method Description, Class Description, H+file header, C/C++-file header+ These templates can contain tags like |FILENAME|, |AUTHOR| etc. which are replaced after reading (KDevelop templates can be used without any change).+ indentation: multiline inserts and code snippets will be indented after insertion.+ Most menu entries are now also active in normal mode.+ new menu items: includes for the C99 header, includes for the standard C++ header, includes for the C++ version of the Standard C Library header, multiline C comment, vim modeline+ Reading the templates is done in one function which can be called in an autocmd.+ Code cleanup: register z no longer used. Most function calls are silent now.

- code snippet support: read, write, edit code snippets in a separate directory- specify command line arguments for make- hardcopy: print whole buffer or a highlighted part of it into a file (Postscript)- new menu entry "fscanf( infile, "", & );" after code for opening a file with pointer "infile" is inserted- new menu entry "fprintf( outfile, "\n", );" after code for opening a file with pointer "outfile" is inserted

- separation of file section comments in 2 new submenus 'C-File-Sections' and 'H-File-Sections'- class comment- method comment- keyword comments and special comments are now in submenus- new hot key to run make- word list for C/C++ word completion (optional)- some optional vimrc- and gvimrc-entries in two files (optional)- minor improvements and corrections