Ruby学习笔记二帮助生成Vim添加代码头的代码

来源:爱站网时间:2021-11-01编辑:网友分享
爱站技术小编今天给大家提供的这篇文章主要介绍了Ruby帮助生成Vim添加代码头的代码,需要的朋友可以参考下,有兴趣的小伙伴可以做好笔记,毕竟这篇文章实用价值还蛮高的。

脚本语言真是太强了。

我的目的是把我的默认代码头功能加到Vim里面。

/******************************************************************************
*  COPYRIGHT NOTICE
*  Copyright (c) 2014 All rights reserved
*  ----Stay Hungry Stay Foolish----
*
*  @author  : Shen
*  @name   :
*  @file   : G:\My Source Code\DefaultCode.cpp
*  @date   : 2014/06/14 02:44
*  @algorithm :
******************************************************************************/

//#pragma GCC optimize ("O2")
//#pragma comment(linker, "/STACK:1024000000,1024000000")

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
templateinline bool updateMin(T& a, T b){ return a > b ? a = b, 1: 0; }
templateinline bool updateMax(T& a, T b){ return a 
#include 
#include 
#include 
#include 
#include 
*/

/*//Computational Geometry
#include 
#define x real()
#define y imag()
typedef complex point;
*/

typedef long long int64;

void solve()
{

}

int main()
{

 return 0;
}

用Ruby10行就搞定了字符串的处理。简直爽爆了。

def load( path )
 File.foreach(path) do |line|
  line["\n"] = ""
  str = "let l = l + 1 | call setline(l, \'#{line}\')"
  File.open("s.txt", "a") do |f|
   f 

最后人工把头尾一加,搞定了。

"F4 添加文件头
map  :call TitleDet()
function AddTitle()
let l = 0
let l = l + 1 | call setline(l, '/******************************************************************************')
let l = l + 1 | call setline(l, '*  COPYRIGHT NOTICE')
let l = l + 1 | call setline(l, '*  Copyright (c) 2014 All rights reserved')
let l = l + 1 | call setline(l, '*  ----Stay Hungry Stay Foolish----')
let l = l + 1 | call setline(l, '*')
let l = l + 1 | call setline(l, '*  @author  : Shen')
let l = l + 1 | call setline(l, '*  @name   :')
let l = l + 1 | call setline(l, '*  @file   : '.expand("%:p:h")."\\".expand("%:t"))
let l = l + 1 | call setline(l, '*  @date   : '.strftime("%Y/%m/%d %H:%M"))
let l = l + 1 | call setline(l, '*  @algorithm :')
let l = l + 1 | call setline(l, '******************************************************************************/')
let l = l + 1 | call setline(l, '')
let l = l + 1 | call setline(l, '//#pragma GCC optimize ("O2")')
let l = l + 1 | call setline(l, '//#pragma comment(linker, "/STACK:1024000000,1024000000")')
let l = l + 1 | call setline(l, '')
let l = l + 1 | call setline(l, '#include ')
let l = l + 1 | call setline(l, '#include ')
let l = l + 1 | call setline(l, '#include ')
let l = l + 1 | call setline(l, '#include ')
let l = l + 1 | call setline(l, '#include ')
let l = l + 1 | call setline(l, '#include ')
let l = l + 1 | call setline(l, '#include ')
let l = l + 1 | call setline(l, '#include ')
let l = l + 1 | call setline(l, 'using namespace std;')
let l = l + 1 | call setline(l, 'templateinline bool updateMin(T& a, T b){ return a > b ? a = b, 1: 0; }')
let l = l + 1 | call setline(l, 'templateinline bool updateMax(T& a, T b){ return a ')
let l = l + 1 | call setline(l, '#include ')
let l = l + 1 | call setline(l, '#include ')
let l = l + 1 | call setline(l, '#include ')
let l = l + 1 | call setline(l, '#include ')
let l = l + 1 | call setline(l, '#include ')
let l = l + 1 | call setline(l, '*/')
let l = l + 1 | call setline(l, '')
let l = l + 1 | call setline(l, '/*//Computational Geometry')
let l = l + 1 | call setline(l, '#include ')
let l = l + 1 | call setline(l, '#define x real()')
let l = l + 1 | call setline(l, '#define y imag()')
let l = l + 1 | call setline(l, 'typedef complex point;')
let l = l + 1 | call setline(l, '*/')
let l = l + 1 | call setline(l, '')
let l = l + 1 | call setline(l, 'typedef long long int64;')
let l = l + 1 | call setline(l, '')
let l = l + 1 | call setline(l, 'void solve()')
let l = l + 1 | call setline(l, '{')
let l = l + 1 | call setline(l, ' ')
let l = l + 1 | call setline(l, '}')
let l = l + 1 | call setline(l, '')
let l = l + 1 | call setline(l, 'int main()')
let l = l + 1 | call setline(l, '{')
let l = l + 1 | call setline(l, ' ')
let l = l + 1 | call setline(l, ' return 0;')
let l = l + 1 | call setline(l, '}')
endfunction

"更新最近修改时间和文件名
function UpdateTitle()
 call setline(8, '*  @file   : '.expand("%:p:h")."\\".expand("%:t"))
 call setline(9, '*  @date   : '.strftime("%Y/%m/%d %H:%M"))
endfunction

"判断前10行代码里面,是否有COPYRIGHT NOTICE这个单词,
"如果没有的话,代表没有添加过作者信息,需要新添加;
"如果有的话,那么只需要更新即可
function TitleDet()
 let n = 2
 "默认为添加
  let line = getline(n)
  let str = '^*  COPYRIGHT NOTICE$'
  if line =~ str
   call UpdateTitle()
   return
  endif
 call AddTitle()
endfunction

以上内容就是爱站技术频道小编为大家分享的Ruby学习笔记二帮助生成Vim添加代码头的代码,看完以上分享之后,大家应该都知道这个代码是什么了吧。

上一篇:Ruby数组(Array)学习笔记

下一篇:Ruby学习笔记一

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载