【Ruby】Ruby大法第二天——帮助生成Vim添加代码头的代码。

脚本语言真是太强了。

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

 1 /******************************************************************************
 2 *       COPYRIGHT NOTICE
 3 *       Copyright (c) 2014 All rights reserved
 4 *       ----Stay Hungry Stay Foolish----
 5 *
 6 *       @author       : Shen
 7 *       @name         :
 8 *       @file         : G:\My Source Code\DefaultCode.cpp
 9 *       @date         : 2014/06/14 02:44
10 *       @algorithm    :
11 ******************************************************************************/
12
13 //#pragma GCC optimize ("O2")
14 //#pragma comment(linker, "/STACK:1024000000,1024000000")
15
16 #include <bits/stdc++.h>
17 #include <cmath>
18 #include <cstdio>
19 #include <string>
20 #include <cstring>
21 #include <iomanip>
22 #include <iostream>
23 #include <algorithm>
24 using namespace std;
25 template<class T>inline bool updateMin(T& a, T b){ return a > b ? a = b, 1: 0; }
26 template<class T>inline bool updateMax(T& a, T b){ return a < b ? a = b, 1: 0; }
27
28 /*//STL
29 #include <map>
30 #include <vector>
31 #include <list>
32 #include <stack>
33 #include <deque>
34 #include <queue>
35 */
36
37 /*//Computational Geometry
38 #include <complex>
39 #define x real()
40 #define y imag()
41 typedef complex<double> point;
42 */
43
44 typedef long long int64;
45
46 void solve()
47 {
48
49 }
50
51 int main()
52 {
53
54     return 0;
55 }

用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 << "#{str}\n"
        end
    end
end

load("DefaultCode.cpp")

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

 1 "F4 添加文件头
 2 map <F4> :call TitleDet()<cr>
 3 function AddTitle()
 4 let l = 0
 5 let l = l + 1 | call setline(l, ‘/******************************************************************************‘)
 6 let l = l + 1 | call setline(l, ‘*       COPYRIGHT NOTICE‘)
 7 let l = l + 1 | call setline(l, ‘*       Copyright (c) 2014 All rights reserved‘)
 8 let l = l + 1 | call setline(l, ‘*       ----Stay Hungry Stay Foolish----‘)
 9 let l = l + 1 | call setline(l, ‘*‘)
10 let l = l + 1 | call setline(l, ‘*       @author       : Shen‘)
11 let l = l + 1 | call setline(l, ‘*       @name         :‘)
12 let l = l + 1 | call setline(l, ‘*       @file         : ‘.expand("%:p:h")."\\".expand("%:t"))
13 let l = l + 1 | call setline(l, ‘*       @date         : ‘.strftime("%Y/%m/%d %H:%M"))
14 let l = l + 1 | call setline(l, ‘*       @algorithm    :‘)
15 let l = l + 1 | call setline(l, ‘******************************************************************************/‘)
16 let l = l + 1 | call setline(l, ‘‘)
17 let l = l + 1 | call setline(l, ‘//#pragma GCC optimize ("O2")‘)
18 let l = l + 1 | call setline(l, ‘//#pragma comment(linker, "/STACK:1024000000,1024000000")‘)
19 let l = l + 1 | call setline(l, ‘‘)
20 let l = l + 1 | call setline(l, ‘#include <bits/stdc++.h>‘)
21 let l = l + 1 | call setline(l, ‘#include <cmath>‘)
22 let l = l + 1 | call setline(l, ‘#include <cstdio>‘)
23 let l = l + 1 | call setline(l, ‘#include <string>‘)
24 let l = l + 1 | call setline(l, ‘#include <cstring>‘)
25 let l = l + 1 | call setline(l, ‘#include <iomanip>‘)
26 let l = l + 1 | call setline(l, ‘#include <iostream>‘)
27 let l = l + 1 | call setline(l, ‘#include <algorithm>‘)
28 let l = l + 1 | call setline(l, ‘using namespace std;‘)
29 let l = l + 1 | call setline(l, ‘template<class T>inline bool updateMin(T& a, T b){ return a > b ? a = b, 1: 0; }‘)
30 let l = l + 1 | call setline(l, ‘template<class T>inline bool updateMax(T& a, T b){ return a < b ? a = b, 1: 0; }‘)
31 let l = l + 1 | call setline(l, ‘‘)
32 let l = l + 1 | call setline(l, ‘/*//STL‘)
33 let l = l + 1 | call setline(l, ‘#include <map>‘)
34 let l = l + 1 | call setline(l, ‘#include <vector>‘)
35 let l = l + 1 | call setline(l, ‘#include <list>‘)
36 let l = l + 1 | call setline(l, ‘#include <stack>‘)
37 let l = l + 1 | call setline(l, ‘#include <deque>‘)
38 let l = l + 1 | call setline(l, ‘#include <queue>‘)
39 let l = l + 1 | call setline(l, ‘*/‘)
40 let l = l + 1 | call setline(l, ‘‘)
41 let l = l + 1 | call setline(l, ‘/*//Computational Geometry‘)
42 let l = l + 1 | call setline(l, ‘#include <complex>‘)
43 let l = l + 1 | call setline(l, ‘#define x real()‘)
44 let l = l + 1 | call setline(l, ‘#define y imag()‘)
45 let l = l + 1 | call setline(l, ‘typedef complex<double> point;‘)
46 let l = l + 1 | call setline(l, ‘*/‘)
47 let l = l + 1 | call setline(l, ‘‘)
48 let l = l + 1 | call setline(l, ‘typedef long long int64;‘)
49 let l = l + 1 | call setline(l, ‘‘)
50 let l = l + 1 | call setline(l, ‘void solve()‘)
51 let l = l + 1 | call setline(l, ‘{‘)
52 let l = l + 1 | call setline(l, ‘    ‘)
53 let l = l + 1 | call setline(l, ‘}‘)
54 let l = l + 1 | call setline(l, ‘‘)
55 let l = l + 1 | call setline(l, ‘int main()‘)
56 let l = l + 1 | call setline(l, ‘{‘)
57 let l = l + 1 | call setline(l, ‘    ‘)
58 let l = l + 1 | call setline(l, ‘    return 0;‘)
59 let l = l + 1 | call setline(l, ‘}‘)
60 endfunction
61
62 "更新最近修改时间和文件名
63 function UpdateTitle()
64     call setline(8, ‘*       @file         : ‘.expand("%:p:h")."\\".expand("%:t"))
65     call setline(9, ‘*       @date         : ‘.strftime("%Y/%m/%d %H:%M"))
66 endfunction
67
68 "判断前10行代码里面,是否有COPYRIGHT NOTICE这个单词,
69 "如果没有的话,代表没有添加过作者信息,需要新添加;
70 "如果有的话,那么只需要更新即可
71 function TitleDet()
72     let n = 2
73     "默认为添加
74         let line = getline(n)
75         let str = ‘^*       COPYRIGHT NOTICE$‘
76         if line =~ str
77             call UpdateTitle()
78             return
79         endif
80     call AddTitle()
81 endfunction

【Ruby】Ruby大法第二天——帮助生成Vim添加代码头的代码。

时间: 2024-10-24 18:46:42

【Ruby】Ruby大法第二天——帮助生成Vim添加代码头的代码。的相关文章

[Ruby] Ruby Variable Scope

Scope defines where in a program a variable is accessible. Ruby has four types of variable scope, local,global, instance and class. In addition, Ruby has one constant type. Each variable type is declared by using a special character at the start of t

辛星跟您玩转vim第二节之用vim命令移动光标

首先值得一提的是,我的vim教程pdf版本已经写完了,大家可以去下载,这里是csdn的下载地址:csdn下载,如果左边的下载地址挂掉了,也可以自行在浏览器下面输入如下地址进行下载:http://download.csdn.net/detail/xinguimeng/7714213 ,当然,如果你是百度网盘的忠实用户,也可以借助于百度网盘,我也同步上传到百度网盘了,下载地址如下:百度网盘下载 ,如果地址挂了,可以在浏览器中输入:http://pan.baidu.com/s/1sj9CLXz 来下载

第二章:图像的显示 和运行完整程序代码

VC++图像处理程序设计(第2版)    杨淑莹 编著     边奠英 主审 第二章 图像的显示 Joanna-In-Hdu 手工打,印象更深刻 使用工具 VS2010 mfc 颜色表中装有该文件所有颜色的R.G.B各分量,每个像素的像素值是颜色索引表的索引号. 通常所称的VGA显示模式是8位显示模式,能显示256种颜色,即0~255进行编号,每一个编号对应一种颜色,颜色的编号就是颜色的索引号. 屏幕上的每一个像素对应一个颜色号,不同像素的颜色对应不同的调色板颜色值.图像的像素值并不是颜色值,而

【vim】插件管理与代码智能补全环境的配置

1. 引言 可以使用脚本/插件来给vim添加各种神奇的功能,从更换颜色主题.到代码智能提示,甚至项目管理.无数开发者通过开源社区贡献自己开发的插件,使得vim有可能变得无比强大.这儿http://vim-scripts.org/vim/scripts.html 是一份vim扩展脚本的列表. 然而,我的思想是尽量不要使用vim插件,除了那些非常优先且对自己的工作而言所必需的.这样,当需要配置一台新电脑或者临时要在别人的电脑上工作时,最起码能比较方便地配置好环境,或者直接使用默认环境熟练地完成任务,

为Vim 添加vimgdb支持

为Vim 添加vimgdb支持 1.    下载最新的vim74的源码包 wget ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2 2.下载vimgdb-for-vim7.4源码 wget https://github.com/larrupingpig/vimgdb-for-vim7.4/archive/master.zip -O vimgdb-for-vim74.zip 3.解压所有文件,并应用补丁文件 tar xjvf vim-7.4.tar.b

php文章内容分页并生成相应的htm静态页面代码

代码如下: <?php $url='test.php?1=1'; $contents="fjka;fjsa;#page#批量生成分成文件并且加上分页代码"; $ptext ='#page#'; ContentsPages($url,$contents,$ptext) /** * 函数名:ContentsPages * 功能:文章内容分页 * 参数:$url文章内容页URL 类型string,$contents文章内容页内容 类型string,$ptext分页标识 类型string

sharepoint 2013 中自建母版页,自动生成html中的顶部导航代码步骤

sharepoint 2013 中自建母版页,自动生成html中的顶部导航代码步骤 分类: SharePoint2013-07-05 11:21 738人阅读 评论(0) 收藏 举报 SharePointsharepoint 2013 1.点击打开设计编辑器:编辑母版页项目 2.找到或者新建一个测试页面(.html),点击网页右上方的"代码段"打开 3.点击代码段打开如下页面,点击对应导航便会自动生成html中可以直接是用的导航代码 4.复制代码段到html模板中相应位置(自行定义,可

Vim 添加vimgdb支持

./configure --enable-gdb --prefix=/usr --enable-multibyte --enable-fontset --enable-xim --enable-gui=auto --enable-pythoninterp=dynamic --enable-pythoninterp --enable-python3interp=dynamic --enable-rubyinterp=dynamic --enable-rubyinterp --enable-perl

如何生成嵌入网页直播的HTML代码

当今的直播业务发展日新月异的大环境下,若企业.机构.政府.学校官方网站甚至是个人的网站主页,要是没有个直播版块或视频点播版块,应该都不好意思说是官网吧. 难为了管理网站的技术人员,购买第三方的直播点播云服务,小并发还比较适合.但往往会预估并发量比较大,计算下来,用云平台根本不划算. 尤其现在很多直播云平台都不再提供按照流量付费的方式,而转以峰值带宽付费方式.对比下来,最终只有自建直播点播服务器. 那么问题就来了. 如何把直播内容+播放器嵌入到网页上呢?网友们也纷纷提问: ü  HTML怎么添加一