新年回来一直忙于工作,今天忙里偷闲赶紧更新一篇,也给大家拜个晚年~~OK,废话不多说,直接进入正题~ 老博友应该知道本博曾经写过一款自动添加作者信息的插件,链接如下:Vim在源代码中自动添加作者信息 这次对这款插件做了更新,并放到http://www.vim.org上提供下载: AuthorInfo : http://www.vim.org/scripts/script.php?script_id=2902 目前AuthorInfo是支持c,cpp,java,php,python,bash,makefile等等多种语言,基本上只要NERD Commenter支持的类型,AuthorInfo都默认支持~这里展示几个例子,先给大家show一下:
c:
/*=============================================================================
# Author: dantezhu - https://www.vimer.cn
# Email: zny2008@gmail.com
# FileName: test2.cpp
# Description:
# Version: 0.0.1
# LastChange: 2011-02-15 19:46:03
# History:
=============================================================================*/
php:
<?php
/*=============================================================================
# Author: dantezhu - https://www.vimer.cn
# Email: zny2008@gmail.com
# FileName: test4.php
# Description:
# Version: 0.0.1
# LastChange: 2011-02-15 19:46:30
# History:
=============================================================================*/
?>
python:
#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
#=============================================================================
# Author: dantezhu - https://www.vimer.cn
# Email: zny2008@gmail.com
# FileName: y.py
# Description:
# Version: 0.0.1
# LastChange: 2011-02-15 19:46:52
# History:
#=============================================================================
'''
OK,简单说一下AuthorInfo的安装方法:
- 1.安装The NERD Commenter
- 2.将AuthorInfo下载后放到plugin目录下
- 3.在vimrc中进行如下配置:
let g:vimrc_author='dantezhu' let g:vimrc_email='zny2008@gmail.com' let g:vimrc_homepage='https://www.vimer.cn' nmap <F4> :AuthorInfoDetect<cr>
当然,作者名字和邮箱,主页等,请使用个人的配置。 OK,这样在vim中首次按下F4就可以添加作者信息,再次按下就可以自动更新啦. 需要特别说明的是,AuthorInfo在程序中也做了一些小优化:
- 1.比如对于python,bash等来说,由于文件头经常会有
#!/usr/bin/python # -*- coding: utf-8 -*-
这种定义,AuthorInfo会自动判断如果发现类似的行,会在这种行之后添加作者信息(参见上文中的python例子),同样对于php,也会自动在<?php之后添加. - 2.对于python这种语言,__doc__是可以直接取到作者信息的注释的,所以AuthorInfo自动将python的注释变成了__doc__可以认的格式。
OK,赶紧去试试吧~~
xlii on #
123 if hasMul == 1
124 exe 'normal '.firstLine.'Gv'.lastLine.'G,cm'
125 else
126 exe 'normal '.firstLine.'Gv'.lastLine.'G,cl'
127 endif
It seems that the mapleader is hardcoded to be ","
while calling the NERD Commenter.
Reply
Dante on #
这里的","不是mapleader哦,NERD Commenter就是用","来做第一个字符而已~
Reply
Dante on #
实在不好意思,我去下了NerdComment的最新版本才发现他的映射已经不是用","写死了,已经上传了最新版本。
Reply
baby walker on #
做一个字符是什么意思?是空一个还是就举个例子什么的。
Reply
Dante on #
?啥叫做一个字符?
Reply
baby walker on #
就是“,”啊,上面的留言看的。。。
Reply
Dante on #
实在不好意思,我去下了NerdComment的最新版本才发现他的映射已经不是用”,”写死了,已经上传了最新版本。
Reply
9hills on #
Good!
Vim确实神器。。。
Reply
Dante on #
哈哈,确实如此~~
Reply
fanhe on #
借宝地问一个NERD Commenter的问题。NERD Commenter好像注视的时候是在第一个非空字符前添加注释标记。但是我不太喜欢这样,我一般喜欢在行首添加。例如在c源码里,一般都带有缩进,这样在行首添加注释标记不会导致正行后移几个字符。NERD Commenter有这个功能吗。我挺喜欢之前用过的linecommenter的,就是我说的这样注释,只是功能少点而已。
Reply
Dante on #
你说的确实没有的,应该是思想不同吧,举个例子
<pre lang="cpp" line="1">
int main(int argc, const char *argv[])
{
return 0;
}
</pre>
注释之后为
<pre lang="cpp" line="1">
//int main(int argc, const char *argv[])
//{
// return 0;
//}
</pre>
即保证注释都在同一列上,但是如果只注释return 0;这一行就会如下
<pre lang="cpp" line="1">
//return 0;
</pre>
Reply
max on #
不知道为什么,我安装了但F4后的信息不正确,The NERD Commenter与AuthorInfo都是vim.org上下载的最新版,C文件出来的信息是这样的
#==========================
# FileName: fun.c
# Desc:
# Author: Max - http://
# Email:
# Version: 0.0.1
# LastChange: 2011-02-19 10:26:39
# History:
#==========================
Reply
Dante on #
好奇怪,你按下,cl的时候,能正确的注释吗?
Reply
max on #
可以正确注释的呢
Reply
max on #
哦,似乎跟我的是\有关,我设置成,就OK了。只能用,做?
Reply
Dante on #
我已经放了最新版本,设置成,和\都可以了,要在vimrc里面加上
<pre lang="vim" line="1">
let mapleader = '\'
let g:mapleader = '\'
</pre>
之类的定义即可
Reply
max on #
好的,辛苦了
Reply
君临天下 on #
好久没有又发了很多文章,需要慢慢品味!
Reply
Dante on #
拙文而已,一起多多交流~~
Reply
kikyo on #
# Version: 0.0.1
# LastChange: 2011-02-15 19:46:52
这个LastChange和Version会自动更新吗?
Reply
Dante on #
LastChange 会。
Version因为不知道要变成多少,所以不会。
Reply
依云 on #
我以前也搞过 Last Change,后来用 git 管理配置了,发现不仅不必要了,而且每次看着它在变更里出现感觉很烦,就去掉了。
Reply
kikyo on #
我还是觉得很有必要的,如果不用git就不知道你最后的更新。
给个建议,加上创建时间吧。
// @Created: Fri 04 Mar 2011 11:23:11 PM CST
关于version,我的处理方法:
// @Revision: 153
Revision从1开始,当 &modified && &modifiable 为真时,:wq之后将Revision加1
Reply
依云 on #
Revision 还是交给版本控制比较好吧?
Reply
lvxue on #
我也写了一个:)有空发上来。
Reply
zhanglistar on #
博主 我想问下你用vim写代码,如何调试? 是开两个term调试呢? 还是把gdb集成到vim里???
其实,本来我都是开两个term调试的,不过最近看了emacs,可以在emacs里直接调用gdb调试,我去vimonline看了下,好像还没有特别给里的工具。。。。搞的我有点想投入emacs的怀抱了。。。。 博主,拉我一把,怎么在vim里用gdb 调试????
Reply
fanhe on #
可以用 pyclewn。
vim的调试能力远远不足,你如果想找个ide,别找vim,这是vim的软肋。如果你能喜欢emacs,就用emacs吧
Reply
Dante on #
很多博友都反馈了这种想法,不过对我自己确实从来没想过在vim中用gdb,所以今天也特意试了一下。
有三种选择:
1.gdbmgr,这个是纯vim插件,今天用了一下午,确实装上就可以用,也很炫,但是经常报错。果断卸载。
2.vimgdb
可以看看易水博客的文章:
http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-vimgdb/
3.pyclewn/clewn
http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-pyclewn/
Reply
zhanglistar on #
谢谢博主的回复。
易水博客的那两篇文章我都看过了,
算了,目前还是没有太给力的插件,
还是用老颁办法吧。
这不影响对vim的喜爱。
Reply
荒野无灯 on #
正需要这样的插件呢,收下了。
Reply
荒野无灯 on #
我F2用作NERDTreeToggle,F3用作Taglist
F4用作BlogList ,F5到F9 ,F12 用作php debugger
已经没有Fn可以map 了。。。
只得:nnoremap aid :AuthorInfoDetect
Reply
Dante on #
嗯嗯,其实我觉得F*离手指有点远,用字母打起来更快捷一些。
Reply
最美不过相识 on #
谢谢博主分享,这个插件找了很久 呵呵
Reply
kevinbin on #
博主你好 用了你的插件很好用,但遇到些问题。现在用pathogen来管理vim插件,调用authorinfo插件时候 会提示e492 not-an-editor-command authorinfodetect 不知道是什么原因,装有nerdcommenter插件。 没用pathogen之前是正常的
Reply
Dante on #
你好,没用过pathogen。。。
Reply
amaoxiong on #
博主:我使用和pathogen类似的VUNDLE管理插件,也报E492:不是编辑器的命令:AuthorInfoDetect,后来在git上搜索Authorinfo插件,用了一个把authorinfo.vim放在plugin而不是ftplugin里的变体,就可以使用了。看你前面的安装说明也是在plugin目录里,但在git上就是ftplugin里了,可能是这个原因造成的错误
Reply
Zhao Cai on #
authoinfo 在bash下面产生的注释不对,# 跑到后面去了,能不能fix一下。谢谢。
============================================================================== #
FileName: test.sh #
Desc: #
Author: Zhao Cai #
Email: caizhaoff@gmail.com #
HomePage: #
Version: 0.0.1 #
Date Created: Tue Aug 16, 2011 04:46PM #
Last Modified: Tue Aug 16, 2011 04:46PM #
History: #
============================================================================== #
Reply
Dante on #
我这里正常呀?
不过倒是发现
#!xxx之类的不会被自动跳过,放新版本改了。
Reply
Scorpio on #
您好,請問我按照您的提示在.vimrc裏添加了:
let g:vimrc_author='dantezhu'
let g:vimrc_email='zny2008@gmail.com'
let g:vimrc_homepage='http://www.vimer.cn'
nmap :AuthorInfoDetect
同時,也將authorinfo.vim移到了~/.vim/plugin
但是我在運行的時候出現了:(之前未有此情况,此期間.vimrc没有其他改動)
No mapping found
Press ENTER or type command to continue
在vim裏面也無法使用本插件。
我更新了runtimepath,以嘗試把F4換成别的,但是也無法解决這個問題。
在Google查詢了很多網頁之後也没有找到解决方案。請問,這種我現在該做些什麽?如何處理這個問題?
我使用的是mac os x 10.6.8 vim 7.3
Reply
nswutong on #
scriptnames看一下有没有加载脚本
Reply
Scorpio on #
謝謝你,我已經解决這個問題了。是因爲命令的格式有問題。因爲我對於一些内容作了修改,然後格式出現了錯誤。我看過vim命令格式的語法之後,已經結局問題了。
謝謝
scorpio
Reply
nswutong on #
建议博主改一下插件分类,https://github.com/vim-scripts/AuthorInfo这里更新时候默认放到了ftplugin目录下面
Reply
Dante on #
我很困惑很困惑的是。。我没有把这些插件传到github去过呀。。。
Reply
nswutong on #
所有插件都会被默认同步过去的,我用这个来更新插件,比什么插件管理器都方便,哈~
Reply
wind128 on #
我想要这如下样式的,应该如何修改?
/**
* FileName: 88.html
* Desc:
* Author: dantezhu
* Email: zny2008@gmail.com
* HomePage: http://www.vimer.cn
* Version: 1.0.0
* LastChange: 2012-02-11 23:44:50
* History:
*/
Reply
Dante on #
呃,这个研究一下代码吧。。
Reply
Andy on #
"自动添加格式
map ggi#!/usr/bin/python# -*- coding: utf-8 -*-:w
imap ggi#!/usr/bin/python# -*- coding: utf-8 -*-:w
vmap ggi#!/usr/bin/python# -*- coding: utf-8 -*-:w
Reply
Andy on #
回复怎么自动转换格式了
Reply
whitemacboy on #
用Vundle安装的,也安装了The NERD Commenter,单用《F4》时候,显示E492:不是编辑器的命令:AuthorInfo;
求助啊。谢谢先。
Reply
http://instanthealthmakeover.com on #
Hello this is kind of of off topic but I was wanting to know if blogs use WYSIWYG editors or if you have to manually code with
HTML. I'm starting a blog soon but have no coding know-how so I wanted to get advice from someone with experience. Any help would be greatly appreciated!
Reply
leyle on #
这个好用,已经添加到我的vim配置里面了。多谢博主了。
Reply
crysisfair on #
额这个功能挺实用啊,为什么不加上去呢?我把你的代码hack了一下,每次更新最后一个Version自动加1,现在感觉挺不错,你看看?if line =~ '^.*Version:S*.*$' let ver_str_list = split(line, '.zs') let ver_str_list_len = len(ver_str_list) let ver_last_num = ver_str_list[ver_str_list_len - 1] let ver_str_list[ver_str_list_len - 1] = str2nr(ver_last_num) + 1 let newline = join(ver_str_list, '') call setline(n,newline) let updated = 1 endif这段就加在TitleDet()里面。
Reply
Dante on #
赞,这样也挺好~
Reply
街角的幸福 on #
楼主,要怎么安装插件啊,我新手
Reply