VIM创建常用的代码模板

之前在vim上尝试在过插件,一句话,很麻烦,很多问题,如果怕麻烦或者没有太多空闲时间,建议不要用,太浪费时间了.

如果你经常写c/c++ 代码的话会经常有一些固定的模板要多次写如,比如模板类,要写好多的template ,如果你用Sublime写的话可能会快些,他会把之前写过的字符串进行动态匹配,但是对于VIM就不行.当然你可以ctrl+n或者ctrl +p来匹配之前写过的,但是如果要匹配多行的信息可能你就不知道怎么办了(不嫌麻烦可以多次yy),所以我今天介绍我一天的成果,不用下载下件,不用你会vimsrcipt,可以轻松想在sublime中一样编写方便快捷.sublime可以自定义快捷键生成模板

VIM创建常用的代码模板_第1张图片

先介绍功能:(注意:这些自定义命令在编辑是输入即插入模式输入的,并且输入的要快,快,快,说三遍了啊)

1.括号的自动匹配生成(vim只能写一个,而sublime可以在写了左括号后自动匹配右括号)

  自动匹配并且光标在括号中间(此处可以匹配小,中,大三种括号)

2.生成/**/

3.输入#def  生成#define

4.输入#in 生成#include<>光标在括号之间

5.输入np 生成using namespace std;

6.输入nf生成头文件定义模板

                    #ifndef  xxxx

                    #define xxxx

                    //代码段

                    #endif

7.按ctrl+A 全选,ctrl+c复制,ctrl+v粘贴,这里不建议用后两个,建议用y和p

8.输入class生成      输入st和空格生成        输入tp和空格生成

        class ClassName{                                struct | {                                                                   template

           };//默认选中类名方便更改             };//光标默认在红色竖线处

VIM创建常用的代码模板_第2张图片

9.输入if ,ife,while,do,switch,try,mian都会生成对应模板

   

VIM创建常用的代码模板_第3张图片

10.输入fn 和空格会生成函数声明信息注解方便作者书写

VIM创建常用的代码模板_第4张图片

11.ctrl + R会编译运行c,c++,java,python文件


代码教程:          

        在vim的匹配中除了插件外,一般有ctrl+p,ctrl+n 或者字典匹配ctrl+x ctrl+k等,这里可以自行百度

http://haoxiang.org/2011/09/vim-modes-and-mappin/,这个比较详细

在vim中也可以写vimsrcipt脚本,这里我介绍一下map命令,网上的解释很多,我就不赘述了.我就简单解释一下代码中的语法.

VIM创建常用的代码模板_第5张图片

map a  b  意思是在命令模式下按a的效果与b的效果相同

    举个栗子:map a  :!ls 按a就会显示当前目录下的文件列表

inoremap 是插入模式在非递归map,就是在插入模式下可以讲文本当命令用

 举个栗子:inoremap a hello 意思是在输入时输入a就会被替换为hello,

                            inoremap a :ls 按a就会显示当前目录下的文件列表

看到这你应该就明白其实就是给命令在不同模式下起个名字

             

代码:你可以将下列代码复制到当前用户下的 .vimrc文件中,也可以直接写在/etc/vim/vimrc文件中

"user design start
inoremap (  ()i
inoremap [  []i
inoremap {  {}i
inoremap<>  <>i

inoremap /* /**/hi
inoremap #def #define 
inoremap #in #include <>i
inoremap np using namespace std;
inoremap nf #ifndef#define#endif3kea


map ggVG
"map y
"map p


inoremap class class ClassName {};kE2lve
inoremap st struct {};kEla
inoremap tp template

inoremap if if () {}//endif02k2ei
inoremap ife if () {} else {}02k2ei
inoremap while while(){}//endwhile2khi
inoremap do do{}while();0ki
inoremap try try{}catch(){}2ki
inoremap for for(int i = 0;i < len; ++i){}//endfor2k10lve
inoremap switch switch(){case:break;case:break;default:break;}//endswitch4kehi


inoremap main int main(int argc, char* argv[]){return 0;}2ki
inoremap fn /*Describe:0iResult:0iParameters: TypeName: Meaningarg:0i*/4kEa
"user design strat


"compile star
function CompileRunGcc()
exec "w"
if &filetype == 'c'
exec "!gcc % -o %<"
exec "!./%<"
elseif &filetype == 'cpp'
exec "!g++ % -o %<"
exec "!./%<"
elseif &filetype == 'java'
exec "!javac %"
exec "!java %<"
elseif &filetype == 'python'
exec "!python %"
endif
endfunction
map :call CompileRunGcc()
"compile end

你可能感兴趣的:(Linux,vim)