- 论坛徽章:
- 1
|
平时常用vim写bash脚本,写perl脚本.
一直想让vim能自动添加一些文件,加入一些作者信息,日期,描述之类的东西.就想用vim的宏功能来解决这个问题.
在~/.vimrc文件里面加入:let @m = "i#!/b^Huse^Hr/bin/perl^M^M# page ^[" 注释: ^M 是CR,即回车符 ^[ 是ESC键 ^H 是退格键.(我这里输错好几个地方,所以按了几个退格键)
保存退出.随便新建一个文件直接输入@m,看看有什么?
这个语句可以自己写.也可以生成.用vim的宏生成方法如下:新建一个文件,按q // 开始录制宏再按u // 这是宏的名字然后就可以输入一些内容或者你常用的一些动作.完事后按esc键推出到命令模式再按q结束宏的录制,这样,刚才的操作过程就录制到了名字为u的宏中.
接下来就是看看宏的内容了,也就是上面所谓的生成宏的代码.在命令行里输入"up // 双引号+宏名+p看到代码了把?复制粘贴到.vimrc中把.格式:let @宏名 = "代码"
下次使用的时候,直接输入@m就可以插入这些信息 注:我曾经想让它在新建一个文件的时候,自动加入,成是成功了.但是带来一个不能接受的后果.就是每次打开文件的时候也会插入.......--!,就是在vimrc中加入一行内容@m // 这里有个问题,就是这样调用,会西安进入末行模式,不是命令行 // 模式,所以宏并不会起作用,需要在代码前面加入^M,及esc,退出 // 到命令行模式才行.
寻思着能不能加入一个判断语句.但是无果.
其实到这里也已经能用了,但是这个@符号是我最不喜欢打的符号之一.麻烦.幸运的是今天无意中发现一个更好的方法.
再vimrc中加入如下代码:"进行版权声明的设置
"添加或更新头
map ms:call TitleDet()'s
function AddTitle()
call append(0,"#####################################################")
call append(1,"#")
call append(2,"# Author: jason - jasonyy77@163.com")
call append(3,"#")
call append(4,"# QQ : 285642427")
call append(5,"#")
call append(6,"# Last modified: ".strftime("%Y-%m-%d %H:%M"))
call append(7,"#")
call append(8,"# Filename: ".expand("%:t"))
call append(9,"#")
call append(10,"# Description: 没有什么,就是一些练习.")
call append(11,"#")
call append(12,"####################################################")
echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
endf
"更新最近修改时间和文件名
function UpdateTitle()
normal m'
execute '/# *Last modified:/s@:.*$@\=strftime(":\t%Y-%m-%d %H:%M")@'
normal ''
normal mk
execute '/# *Filename:/s@:.*$@\=":\t\t".expand("%:t")@'
execute "noh"
normal 'k
echohl WarningMsg | echo "Successful in updating the copy right." | echohl N
one
endfunction
"判断前10行代码里面,是否有Last modified这个单词,
"如果没有的话,代表没有添加过作者信息,需要新添加;
"如果有的话,那么只需要更新即可
function TitleDet()
let n=1
"默认为添加
while n 代码来源:http://www.vimer.cn/2010/01/用vim在代码文件中自动添加ifdefdefineendif.html
我稍为改了一下头信息.改成自己的了.希望作者不要介意.还可以做一些修改.但是我觉得这个已经很不错了.只需要改动一个文字就OK.3Q作者
用法很简单了.
创文件的时候按下F4就可以了.修改好文件的时候,按F4还可以更新修改里面的时间 // 这点很强大
至于里面的语法.和其它语言也差不多.详细的.google vim脚本
下面有一个很好的连接:
Vim 实用技术,第 1 部分: 实用技巧
Vim 实用技术,第 2 部分: 常用插件
Vim 实用技术,第 3 部分: 定制 Vim
随便说一些宏真是一个很好的东西:
下面举几个例子:一个文件100行,需要把1,2行合并,3,4行合并,依次类推.合并行都知道是J.用宏:quJjq // 到这里宏录制完成100@u // 执行100次宏.多的会退出,没有关系结果如何?
例二:一个文件100行,删除奇数行.用宏:quddjq50@u
再加两个选项:
set numberset tabstop=4
我觉得很有用,其它的选项可有可无.google一下一大把.
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/111905/showart_2182891.html |
|