Sai*_*idi 3 c++ linux vim bash
当我:Class Toto从VIM 命令行键入时,我想获取标头和源文件及其模板,就像我们创建新类时任何编辑器所做的那样。因此,如果
输入
:Class Toto
然后
输出:
toto.h
#ifndef TOTO_H
#define TOTO_H
class toto
{
public:
toto();
virtual ~toto();
protected:
private:
};
#endif // TOTO_H
Run Code Online (Sandbox Code Playgroud)
toto.cpp
#include "toto.h"
toto::toto()
{
//ctor
}
toto::~toto()
{
//dtor
}
Run Code Online (Sandbox Code Playgroud)
我得到:
./src/toto.c
./include/toto.h
自动生成(带src和include文件夹就完美了)
在函数下方,我添加到我的~/.vimrc文件中
"C++ Class Generator
function! Class(ClassName)
"================== editing header file =====================
let header = a:ClassName.".h"
:vsp %:h/.h
call append(0,"#ifndef ".toupper(a:ClassName)."_H")
call append(1,"#define ".toupper(a:ClassName)."_H")
call append(2," ")
call append(3,"class ".a:ClassName )
call append(4, "{")
call append(5, " public:")
call append(6, " ".a:ClassName."();")
call append(7, " virtual ~".a:ClassName."();")
call append(8, " protected:")
call append(9, " private:")
call append(10, "};")
call append(11,"#endif // ".toupper(a:ClassName)."_H")
:execute 'write' header
"================== editing source file ========================
let src = a:ClassName.".cpp"
:vsp %:h/.cpp
call append(0,"#include ".a:ClassName.".h")
call append(1," ")
call append(2,a:ClassName."::".a:ClassName."()")
call append(3,"{")
call append(4,"//ctor ")
call append(5,"}")
call append(6," ")
call append(7," ")
call append(8,a:ClassName."::~".a:ClassName."()")
call append(9,"{")
call append(10,"//dtor ")
call append(11,"}")
:execute 'write' src
endfunction
Run Code Online (Sandbox Code Playgroud)
打开vim并输入
:call Class("toto")
你的 vim 将被分成 3 部分:
如果您想自定义命令
:call Class("toto")以:Class toto在您的~/.vimrc:
command! -nargs=1 Class call Class(<f-args>)
Run Code Online (Sandbox Code Playgroud)
结果 :