c.vim C/C++ IDE Screen Shots |
|
C/C++ plugin |
screen shots: gVim + plugins as C/C++ - IDE Read the c.vim help file online The key mappings of this plugin (PDF) Of interest: Plugin featured in the The Geek Stuff tutorial Make Vim as Your C/C++ IDE Using c.vim Plugin |
Similar plugins: Bash-IDE bash-support Lua-IDE lua-support NQC-IDE nqc-support Perl-IDE perl-support Of interest: Doxygen Support doxygen-support |
Submenus (1. level) |
Submenus (2. level) |
Generated Code |
|---|---|---|
Menu Comments
|
Menu Comments : different types of comments, file section headers, commenting and uncommenting of marked areasMany menu entries generate comments or commented code. The style of the comments can be toggled between C-style ( /* ... */ ) and C++-style ( // ... ).6 menu entries generate block comments. These comments are read from template files. These files can be written or changed by the user to fulfill special requirements (layout for a project or workgroup already exists, file headers / blocks have to be prepared for a documentation tool, ... ). The entry C/C++-file header generates a complete file header. File name and the date are looked up by the editor. The other information (author name, sign, ... ) are taken from the configuration settings in c.vim. /* * ===================================================================== * * Filename: test1.c * * Description: * * Version: 1.0 * Created: 02.06.2003 11:42:58 CEST * Revision: none * Compiler: gcc * * Author: Dr.-Ing. Fritz Mehner (Mn), mehner@fh-swf.de * Company: Fachhochschule Südwestfalen, Iserlohn * * ===================================================================== */ The entry H-File Sections -> All Sections, C generates file section header for sections often used in header files. C style /* ##### HEADER FILE INCLUDES ########################################## */ /* ##### EXPORTED MACROS ############################################### */ /* ##### EXPORTED DATA TYPES ########################################### */ /* ##### EXPORTED TYPE DEFINITIONS ##################################### */ /* ##### EXPORTED VARIABLES ############################################ */ /* ##### EXPORTED FUNCTION DECLARATIONS ################################ */ C++ style // ##### HEADER FILE INCLUDES ########################################## // ##### EXPORTED MACROS ############################################### // ##### EXPORTED DATA TYPES ########################################### // ##### EXPORTED TYPE DEFINITIONS ##################################### // ##### EXPORTED VARIABLES ############################################ // ##### EXPORTED FUNCTION DECLARATIONS ################################ The entry KEYWORD+Comm. -> //:BUG: generates a special line end comment for commenting a bug. These comments are easily located by their key words (e.g. :BUG: ). Date and author name are inserted by the editor.
// :BUG:04.03.2003:Mn:
These comments are not for the final version of a program, of course.
|
|
Menu Statements |
Menu Statements : Insert C statementsThe entry do { } while generates an empty do-while-loop with a comment at the end. The cursor will be positioned between the brackets.
do
{
}
while ( ); // ----- end do-while -----
The entry switch generates a switch-staement with 4 cases + default :
switch ( )
{
case :
break;
case :
break;
case :
break;
case :
break;
default:
break;
} // ----- end switch -----
|
|
Menu Preprocessor![]() |
|
Menu Preprocessor : Insert preprocessor statementsThe menu entry #ifndef #def #endif generates an empty include guard. The macro name is suggested according to the file name.#ifndef SHARED_MEM_1_INC #define SHARED_MEM_1_INC #endif /* ----- #ifndef SHARED_MEM_1_INC ----- */ The menu entry #if 0 #endif inserts the lines
#if 0 /* ----- #if 0 : If0Label_1 ----- */
#endif /* ----- #if 0 : If0Label_1 ----- */
In visual mode the marked block of lines will be surrounded by these lines.
This is usually done to temporarily block out some code. The label names like
If0Label_1 are automatically inserted into the comments. The trailing numbers
are automatically incremented.
The menu entry remove #if #endif removes such a construct if the cursor is in the middle of such a section or on one of the two enclosing lines. Nested constructs will be untouched. |
Menu Idioms |
Menu Idioms : Insert frequently used statements.The entry function generates an empty function with a specified name (dialog). The curser will be positioned on the key word void.
void
func33 ( )
{
return ;
} // ---------- end of function func33 ----------
The entry open input file generates the following statements which opens a file. The name of the file pointer can be specified in a dialog.
FILE *infile; /* input-file pointer */
char *infile_file_name = ""; /* input-file name */
infile = fopen( infile_file_name, "r" );
if ( infile == NULL )
{
fprintf (stderr, "couldn't open file '%s'; %s\n",
infile_file_name, strerror(errno) );
exit (EXIT_FAILURE);
}
if( fclose(infile) == EOF ) /* close input file */
{
fprintf (stderr, "couldn't close file '%s'; %s\n",
infile_file_name, strerror(errno) );
exit (EXIT_FAILURE);
}
|
|
Menu Snippets |
Menu Snippets : Code snippets and prototypesRead, write and edit your own code snippets in separate files in a separate snippet directory.Pick up function prototype(s) from one or more lines. Insert the prototype(s) elsewhere. Pick up prototypes: Mark the following lines and choose pick up prototype :
double
f3_sub1 ( // comment comment comment
/* */ double r1, /**/ // the first /* ssssss */
double r2 ) // the second
Now mark these lines and choose pick up prototype again:
int f4_sub1 ( int n1, /* multi
line
comment */
int n2, int n3 /* comment3 */ )
The following lines will be inserted by insert prototype(s) :double f3_sub1 ( double r1, double r2 ); int f4_sub1 ( int n1, int n2, int n3 ); |
|
Menu C++ |
Menu C++ : empty classes, output manipulators and flagbits, open files, try-catch-blocks, ...The entry class generates an empty class declaration. The name of the class (e.g. Cls) can be specified in a dialog.
class Cls
{
public:
// ==================== LIFECYCLE =================================
Cls (); // constructor
// ==================== OPERATORS =================================
// ==================== OPERATIONS =================================
// ==================== ACCESS =================================
// ==================== INQUIRY =================================
protected:
private:
}; // ---------- end of class Cls ----------
The entry operator << generates an empty friend-function which overloads the standard I/O-operator. The name of the class (e.g. Cls) can be specified in a dialog.
ostream &
operator << (ostream & os, const Cls & obj )
{
os << obj. ;
return os;
} // ----- class Cls : end of friend function operator << -----
|
|
Menu Run |
Menu Run :
|
back to Sourceforge