Ruby学习笔记二帮助生成Vim添加代码头的代码
2023-06-13 09:15:38 时间
脚本语言真是太强了。
我的目的是把我的默认代码头功能加到Vim里面。
/****************************************************************************** *COPYRIGHTNOTICE *Copyright(c)2014Allrightsreserved *----StayHungryStayFoolish---- * *@author:Shen *@name: *@file:G:\MySourceCode\DefaultCode.cpp *@date:2014/06/1402:44 *@algorithm: ******************************************************************************/ //#pragmaGCCoptimize("O2") //#pragmacomment(linker,"/STACK:1024000000,1024000000") #include<bits/stdc++.h> #include<cmath> #include<cstdio> #include<string> #include<cstring> #include<iomanip> #include<iostream> #include<algorithm> usingnamespacestd; template<classT>inlineboolupdateMin(T&a,Tb){returna>b?a=b,1:0;} template<classT>inlineboolupdateMax(T&a,Tb){returna<b?a=b,1:0;} /*//STL #include<map> #include<vector> #include<list> #include<stack> #include<deque> #include<queue> */ /*//ComputationalGeometry #include<complex> #definexreal() #defineyimag() typedefcomplex<double>point; */ typedeflonglongint64; voidsolve() { } intmain() { return0; }
用Ruby10行就搞定了字符串的处理。简直爽爆了。
defload(path) File.foreach(path)do|line| line["\n"]="" str="letl=l+1|callsetline(l,\"#{line}\")" File.open("s.txt","a")do|f| f<<"#{str}\n" end end end load("DefaultCode.cpp")
最后人工把头尾一加,搞定了。
"F4添加文件头 map<F4>:callTitleDet()<cr> functionAddTitle() letl=0 letl=l+1|callsetline(l,"/******************************************************************************") letl=l+1|callsetline(l,"*COPYRIGHTNOTICE") letl=l+1|callsetline(l,"*Copyright(c)2014Allrightsreserved") letl=l+1|callsetline(l,"*----StayHungryStayFoolish----") letl=l+1|callsetline(l,"*") letl=l+1|callsetline(l,"*@author:Shen") letl=l+1|callsetline(l,"*@name:") letl=l+1|callsetline(l,"*@file:".expand("%:p:h")."\\".expand("%:t")) letl=l+1|callsetline(l,"*@date:".strftime("%Y/%m/%d%H:%M")) letl=l+1|callsetline(l,"*@algorithm:") letl=l+1|callsetline(l,"******************************************************************************/") letl=l+1|callsetline(l,"") letl=l+1|callsetline(l,"//#pragmaGCCoptimize("O2")") letl=l+1|callsetline(l,"//#pragmacomment(linker,"/STACK:1024000000,1024000000")") letl=l+1|callsetline(l,"") letl=l+1|callsetline(l,"#include<bits/stdc++.h>") letl=l+1|callsetline(l,"#include<cmath>") letl=l+1|callsetline(l,"#include<cstdio>") letl=l+1|callsetline(l,"#include<string>") letl=l+1|callsetline(l,"#include<cstring>") letl=l+1|callsetline(l,"#include<iomanip>") letl=l+1|callsetline(l,"#include<iostream>") letl=l+1|callsetline(l,"#include<algorithm>") letl=l+1|callsetline(l,"usingnamespacestd;") letl=l+1|callsetline(l,"template<classT>inlineboolupdateMin(T&a,Tb){returna>b?a=b,1:0;}") letl=l+1|callsetline(l,"template<classT>inlineboolupdateMax(T&a,Tb){returna<b?a=b,1:0;}") letl=l+1|callsetline(l,"") letl=l+1|callsetline(l,"/*//STL") letl=l+1|callsetline(l,"#include<map>") letl=l+1|callsetline(l,"#include<vector>") letl=l+1|callsetline(l,"#include<list>") letl=l+1|callsetline(l,"#include<stack>") letl=l+1|callsetline(l,"#include<deque>") letl=l+1|callsetline(l,"#include<queue>") letl=l+1|callsetline(l,"*/") letl=l+1|callsetline(l,"") letl=l+1|callsetline(l,"/*//ComputationalGeometry") letl=l+1|callsetline(l,"#include<complex>") letl=l+1|callsetline(l,"#definexreal()") letl=l+1|callsetline(l,"#defineyimag()") letl=l+1|callsetline(l,"typedefcomplex<double>point;") letl=l+1|callsetline(l,"*/") letl=l+1|callsetline(l,"") letl=l+1|callsetline(l,"typedeflonglongint64;") letl=l+1|callsetline(l,"") letl=l+1|callsetline(l,"voidsolve()") letl=l+1|callsetline(l,"{") letl=l+1|callsetline(l,"") letl=l+1|callsetline(l,"}") letl=l+1|callsetline(l,"") letl=l+1|callsetline(l,"intmain()") letl=l+1|callsetline(l,"{") letl=l+1|callsetline(l,"") letl=l+1|callsetline(l,"return0;") letl=l+1|callsetline(l,"}") endfunction "更新最近修改时间和文件名 functionUpdateTitle() callsetline(8,"*@file:".expand("%:p:h")."\\".expand("%:t")) callsetline(9,"*@date:".strftime("%Y/%m/%d%H:%M")) endfunction "判断前10行代码里面,是否有COPYRIGHTNOTICE这个单词, "如果没有的话,代表没有添加过作者信息,需要新添加; "如果有的话,那么只需要更新即可 functionTitleDet() letn=2 "默认为添加 letline=getline(n) letstr="^*COPYRIGHTNOTICE$" ifline=~str callUpdateTitle() return endif callAddTitle() endfunction
相关文章
- linux vim查看下一页,linuxVIM基本命令大全介绍(2)
- docker容器中使用vim
- Linux 之 Vim 编辑器从基础到大成使用
- vim设置编码
- Linux编辑器——vim
- linux下设置vim详解程序员
- Vim在Linux上的应用与实践(vimlinux)
- Vim在Linux上的安装和下载(vim下载linux)
- Vim配置文件(.vimrc),Vim配置教程
- Vim在Linux上的强大插件功能(vim插件linux)
- Linux世界没有Vim:意想不到的后果(linux没有vim)
- Linux下使用Vim编辑器进行编程.(linux打开vim)
- 编辑Linux下Vim编辑器:快速开始你的编码之旅(linux启动vim)
- 环境深入Linux:如何设置Vim编辑器(linux设置vim)
- 使用Linux的Vim: 迈向快乐编程之路(linux的vim使用)
- Linux下如何保存并退出Vim(linux保存退出vim)
- 安装Linux系统下的Vim编辑器(linux系统安装vim)
- 完成Linux下的Vim配置设置(linux下配置vim)
- Linux下安装Vim:快速、轻松、简单(linux下载vim)
- 掌握 Linux Vim 字体设置技巧(linuxvim字体)
- Vim 文本插入
- 快速入门:Linux Vim编辑器(linux vim编辑器)
- 用Ruby操作Redis,解锁更多高效服务(ruby 连接redis)
- Ruby环境下Redis的快速安装(ruby redis安装)
- 在vim中添加perl注释时无法对齐问题的解决方法
- Vim命令高级用法