vim插件管理利器:pathogen_execute pathogen#infect()-程序员宅基地

技术标签: 文档  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下载完毕后,就可以使用了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhaoyw2008/article/details/8012757

智能推荐

验证工具类-程序员宅基地

文章浏览阅读36次。public class Regexlib { /// <summary> /// 判断字符串是否是a-zA-Z0-9_范围内(4,18位范围内) /// </summary> /// <param name="strIn"></param> /// <returns..._工具类产品检验规范通用版

Wireshark数据包分析之DHCP协议包解读-程序员宅基地

文章浏览阅读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怎么游戏界面返回左面

Python总结第三篇之字符串_python string中第三个a-程序员宅基地

文章浏览阅读95次。字符串算是python 文本处理中用到的非常多的内容了,下面就对此总结下。查找字符串#!usr/bin/env import reimport stringtarget = 'test.txt'file = open(target) keyword = 'help'for line in file: # 这一行的目的是为了查看,是否有从首位开始就与keyword匹配的字符串..._python string中第三个a

STM8S(105K4)使用笔记——活跃停机模式的配置与AWU唤醒_stm8s awu时间-程序员宅基地

文章浏览阅读1.7k次,点赞2次,收藏6次。STM8S提供的可编程的电源管理等待(Wait)模式:通过WFI指令进入。该模式下CPU将停止运行,但外设与中断控制器仍保持运行。该模式下可以通过外设时钟门控、降低CPU时钟频率、选择低功耗时钟源(LSI,HSI)进一步降低功耗。在等待模式下,所有寄存器与RAM的内容不变,进入等待模式前所定义的时钟配置也不会在进入等待模式后改变。每当一个内部或外部中断产生时,CPU从等待模式唤醒并恢复工作。停机(Halt)模式:通过HALT指令进入。该模式下主时钟停止,即由fMASTER提供时钟的CP_stm8s awu时间

支付宝办公神器语雀上线“空间”功能,8大实用指南快速上手!-程序员宅基地

文章浏览阅读1.3k次。近日,蚂蚁金服旗下知识创作与分享工具语雀发布“空间功能”,上周我们对这一办公室神器进行了介绍。(详情请戳:阿里员工都在用的知识管理工具,究竟有何特别?)总体而言,语雀支持在线文档编写、多人协作、灵活的团队管理和金融级安全存储的基础上,新增“空间”功能,助力企业知识管理,帮助企业快速提升团队内容协作与知识管理效率,同时搭建企业知识门户,系统沉淀企业数据资产。语雀是蚂蚁金服体验科技研发的创新产品,目前..._语雀我自己和个人空间区别

随便推点

Hive启动时报错:cannot access ....spark/lib/spark-assembly-*.jar: No such file or directoryog解决_cannot access /data/apps/spark-3.1.3/lib/spark-ass-程序员宅基地

文章浏览阅读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次。交换机的配置一直以来是非常神秘的,不仅对于一般用户,对于绝大多数网管人员来说也是如此,同时也是作为网管水平高低衡量的一个重要而又基本的标志。这主要在两个原因,一是绝大多数企业所配置的交换机都是桌面非网管型交换机,根本不需任何配置,纯属“傻瓜”型,与集线器一样,接上电源,插好网线就可以正常工作;另一方面多数中、小企业老总对自己的网管员不是很放心,所以即使购买的交换机是网管型的,..._网络交换机配置

PHP面向对象编程基本原则-程序员宅基地

文章浏览阅读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))_统计使用次数最多的三个标签名称

c# 低功耗蓝牙_c# - 如何使用C#手动绑定到WinForm中的蓝牙低能耗设备? - 堆栈内存溢出...-程序员宅基地

文章浏览阅读754次。我想到了。 我走在正确的轨道上。使用以下连接后:var dev = await BluetoothLEDevice.FromBluetoothAddressAsync(args.BluetoothAddress);您需要执行自定义配对:var prslt = await device.DeviceInformation.Pairing.Custom.PairAsync(DevicePairing..._bluetoothledevice.frombluetoothaddressasync

命令构建gradle项目_Gradle 的下载安装配置以及创建第一个Gradle 项目-程序员宅基地

文章浏览阅读275次。1. 什么是Gradle?Gradle是一个开源的构建自动化工具,专注于灵活性和性能。 Gradle构建脚本使用Groovy或Kotlin DSL编写。 阅读Gradle功能,了解Gradle的功能。高度可定制 - Gradle以一种可以以最基本的方式定制和扩展的方式建模。快速 - Gradle通过重用先前执行的输出,仅处理已更改的输入以及并行执行任务来快速完成任务。功能强大 - Gradle是A..._gradle model platforms

推荐文章

热门文章

相关标签