技术标签: 文档 git autoload vim nested 数据结构
来源:http://www.cnblogs.com/taskiller/archive/2012/08/14/2637689.html
一、pathogen简介
通常情况下安装vim插件,通常是将所有的插件和相关的doc文件都安装在中一文件夹中,如将插件全部安装在/usr/share/vim/vim73/plugin/目录下,将帮助文档全部安装在/usr/share/vim/vim73/doc/目录下。这样做带来的后果是修改和卸载插件很麻烦,很难弄清楚哪个文件属于哪个插件。
如果用pathogen来管理插件的话,就会变得方便很多了。pathogen让每个插件占有一个单独的目录,解决了文件分散的问题。安装完pathogen之后,只需要在~/.vim/目录下新建一个目录~/.vim/bundle/,并将要安装的所有插件放在~/.vim/bundle/目录下即可以使用。如果要删除某个插件,只需要将~/.vim/bundle/目录下对应的插件目录删除即可。如果想保持某个插件为最新版本,直接从插件的仓库checkout一份代码到bundle目录即可。
二、安装pathogen
pathogen的下载地址为:https://github.com/tpope/vim-pathogen
下载后可以直接解压。pathogen插件只有一个单独的脚本,所谓安装就是把它放在当前用户的 ~/.vim/autoload 目录下即可。
即,将解压后的autoload目录连同里面的pathogen.vim插件拷贝到~/.vim/目录下。
三、启用pathogen
要启用pathogen,还需要在~/.vimrc 文件里, filetype plugin indent on 之前的任何地方,加入下面这句:
call pathogen#infect()
注:这里需要说明一下,该插件不能放到/usr/share/vim/vim73/目录下,而只能放到~/.vim/目录下。要启用pathogen也只能修改~/.vimrc,而不能修改/etc/vimrc (Ubuntu下一般只需要修改~/.vimrc即可。如果使用Fedora,当以root用户打开vim时,如果要使插件或对VIM的配置生效,则需要修改/etc/vimrc文件)。
如果没有~/.vimrc文件,创建该文件并将以下内容拷贝到该文件中:
call pathogen#infect()
syntax on
filetype plugin indent on
要生成帮助文档的话,就在vim下输入:call pathogen#helptags()即可。
四、安装新插件
到目前为止,pathogen已经启用,要安装新插件,只需要下载该插件,并将其放到~/.vim/bundle/目录下即可。
1、安装NERDTree
例如,要下载安装NERDTree插件,只需要进入到~/.vim/bundle/目录,然后执行以下命令:
git clone http://github.com/scrooloose/nerdtree.git
下载完成后,会看到~/.vim/bundle/目录下会多出一个新的目录:nerdtree
OK!NERDTree插件已经安装完成了!可以看到这种方式比传统的vim插件安装方式简单多了!
而要卸载该插件也非常简单,只需要在~/.vim/bundle/目录下删除nerdtree目录即可,干净利落!
要更新该插件到最新版本,只需要进入到该目录~/.vim/bundle/nerdtree/,并执行以下命令:
git pull origin
当然这种安装和更新插件的方法只适用于代码仓库支持git的方法。
对于无法用git下载的插件,就更新bundle里的那个以插件名为名的目录就好。
2、安装tagbar
tagbar可以做为taglist的替代者,在~/.vim/bundle/目录执行安装命令如下:
git clone https://github.com/majutsushi/tagbar.git
之后同样可以在vimrc文件中设置快捷键:
nmap <F4> :TagbarToggle<CR> "设置快捷键
let g:tagbar_width = 40 "设置宽度,默认为40
autocmd VimEnter * nested :call tagbar#autoopen(1) "打开vim时自动打开
tagbarlet g:tagbar_left = 1 "在左侧"
let g:tagbar_right = 1 "在右侧
列举几点比taglist优化了的地方:
(1)支持头文件的函数列表显示
tagbar对函数的可见级别也是做了区分的,分别用+ - # 并配合着色来做了区分。
(2)对面向对象的支持更好
taglist虽然也会列出类列表,但是整体还是很不直观。
(3)自动根据文件修改时间来重建
taglist在这一点上体验就很不好,其实明明可以通过这种时间戳的方式来实现。
(据说tagbar最好配置ctags使用,效果会更好)
3、安装supertab插件
SuperTab插件的作用是使键盘上的Tab键具有更快捷的自动补齐和上下文提示功能。在~/.vim/bundle/目录下下载并安装该插件:
git clone https://github.com/ervandew/supertab.git
安装好之后,就可以在vim中直接使用自动补齐功能了。比如,用vim打开一个.c文件,要声明一个unsigned int 类型的变量,只需要输入unsi,之后按Tab键,就会将该关键字自动补齐了,非常好用。
五、利用pathogen,配置vim语法高亮
vim自身可以设置关键字高亮,却无法设置函数名和自定义的数据结构高亮,可以通过taghighlight插件解决这一问题。
首先安装taghighlight插件,在~/.vim/bundle/目录运行以下命令:
hg clone https://bitbucket.org/abudden/taghighlight
等一小段时间,等待taghighlight下载完毕后,就可以使用了。
文章浏览阅读36次。public class Regexlib { /// <summary> /// 判断字符串是否是a-zA-Z0-9_范围内(4,18位范围内) /// </summary> /// <param name="strIn"></param> /// <returns..._工具类产品检验规范通用版
文章浏览阅读1.8k次。*此篇博客仅作为个人笔记和学习参考DHCP协议包格式DHCP报文类型DHCP Discover、DHCP Offer、DHCP Request、DHCP ACK、DHCP NAK、DHCP Release、DHCP Decline、DHCP Infrom;DHCP Discover数据包分析(发现)Bootstrap Protocol (Discover)Message typ..._liteonte
文章浏览阅读200次。小米创始人兼CEO雷军、京东零售子集团3C电子及消费品零售事业群陈婷、优点科技刘江峰都来了,谁能有这么大的号召力?答案是黑鲨游戏手机。3月18日晚,黑鲨游戏手机在北京举行了新一代产品的发布会。发布会开场后,直奔“产品”主题。 雷锋网划重点,汇总产品信息如下: X-核心:黑鲨设计DNA持续进化,更具速度感和人体工学的全系设计语言 金属加玻璃的双..._红魔mare怎么游戏界面返回左面
文章浏览阅读95次。字符串算是python 文本处理中用到的非常多的内容了,下面就对此总结下。查找字符串#!usr/bin/env import reimport stringtarget = 'test.txt'file = open(target) keyword = 'help'for line in file: # 这一行的目的是为了查看,是否有从首位开始就与keyword匹配的字符串..._python string中第三个a
文章浏览阅读1.7k次,点赞2次,收藏6次。STM8S提供的可编程的电源管理等待(Wait)模式:通过WFI指令进入。该模式下CPU将停止运行,但外设与中断控制器仍保持运行。该模式下可以通过外设时钟门控、降低CPU时钟频率、选择低功耗时钟源(LSI,HSI)进一步降低功耗。在等待模式下,所有寄存器与RAM的内容不变,进入等待模式前所定义的时钟配置也不会在进入等待模式后改变。每当一个内部或外部中断产生时,CPU从等待模式唤醒并恢复工作。停机(Halt)模式:通过HALT指令进入。该模式下主时钟停止,即由fMASTER提供时钟的CP_stm8s awu时间
文章浏览阅读1.3k次。近日,蚂蚁金服旗下知识创作与分享工具语雀发布“空间功能”,上周我们对这一办公室神器进行了介绍。(详情请戳:阿里员工都在用的知识管理工具,究竟有何特别?)总体而言,语雀支持在线文档编写、多人协作、灵活的团队管理和金融级安全存储的基础上,新增“空间”功能,助力企业知识管理,帮助企业快速提升团队内容协作与知识管理效率,同时搭建企业知识门户,系统沉淀企业数据资产。语雀是蚂蚁金服体验科技研发的创新产品,目前..._语雀我自己和个人空间区别
文章浏览阅读2.3k次。在安装spark后,通过bin/hive 启动hive时报错:ls:cannot access /export/servers/spark/lib/spark-assembly-*.jar: No such file or directoryog原因分析:spark2的jar包结构改变,安装的hive中,hive启动脚本内容与之不匹配。解决方案:进入hive目录中,vim bin/hi..._cannot access /data/apps/spark-3.1.3/lib/spark-assembly-*.jar: no such file
文章浏览阅读196次。交换机的配置一直以来是非常神秘的,不仅对于一般用户,对于绝大多数网管人员来说也是如此,同时也是作为网管水平高低衡量的一个重要而又基本的标志。这主要在两个原因,一是绝大多数企业所配置的交换机都是桌面非网管型交换机,根本不需任何配置,纯属“傻瓜”型,与集线器一样,接上电源,插好网线就可以正常工作;另一方面多数中、小企业老总对自己的网管员不是很放心,所以即使购买的交换机是网管型的,..._网络交换机配置
文章浏览阅读41次。首先祝大家节日快乐!!!额,不知道你们剁手没,小梦是没有!整整已经错过了第九个年头!小伙伴是不是有一种感觉,PHP入门的时候简直爱不释手,总是把 ”PHP是世界上最好的语言“ 挂在嘴边上,觉得他简单,快速完成项目!然儿,终于有一天,你开发的项目过于...
文章浏览阅读150次。let arr = Object.entires([...document.getElementByTagName('*')].map(v => v.tagName).reduce((obj, a)=> { obj[a] = obj[a] ? obj[a] + 1 : 1; return obj;}, {}));arr.sort((a,b) => b[1] - a[1]);console.table(arr.slice(0,2))_统计使用次数最多的三个标签名称
文章浏览阅读754次。我想到了。 我走在正确的轨道上。使用以下连接后:var dev = await BluetoothLEDevice.FromBluetoothAddressAsync(args.BluetoothAddress);您需要执行自定义配对:var prslt = await device.DeviceInformation.Pairing.Custom.PairAsync(DevicePairing..._bluetoothledevice.frombluetoothaddressasync
文章浏览阅读275次。1. 什么是Gradle?Gradle是一个开源的构建自动化工具,专注于灵活性和性能。 Gradle构建脚本使用Groovy或Kotlin DSL编写。 阅读Gradle功能,了解Gradle的功能。高度可定制 - Gradle以一种可以以最基本的方式定制和扩展的方式建模。快速 - Gradle通过重用先前执行的输出,仅处理已更改的输入以及并行执行任务来快速完成任务。功能强大 - Gradle是A..._gradle model platforms