vim 插件安装
一、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
下载后可以直接解压。unzip vim-pathogen-master.zip
pathogen插件只有一个单独的脚本,所谓安装就是把它放在当前用户的 ~/.vim/autoload 目录下即可。
即,将解压后的autoload目录连同里面的pathogen.vim插件拷贝到~/.vim/目录下。cp autoload/ ~/.vim/ -r
三、启用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下载完毕后,就可以使用了。
十款优秀的插件:
https://www.cnblogs.com/linuxprobe/p/5926821.html
来源:https://blog.csdn.net/zhaoyw2008/article/details/8012757
vim 插件安装的更多相关文章
- vim插件安装总结
vim插件安装总结 vim 插件 vundle 插件对于vim来说是一个杀手级别的神器助手,能自动补全,语法高亮,文件搜索等等,有效地提升了编程效率.下面就个人的一些安装和使用进行一个总结. 自动管理 ...
- Eclipse vim插件安装使用
在eclipse移动关闭位置感觉非常不爽,经常要用到方向键和鼠标,导致经常要移来移去.果断受不了了,去网上搜了下发现eclipse有许多vim插件可以使用.有一个大家都比较推荐的是 vrapper ...
- 打造linux下的source insight——vim插件安装使用总结
source insight是windows下的优秀编辑器,适合阅读管理代码,主要有以下功能: 查找函数,变量或者宏的定义. 查找函数,变量或者宏的引用位置. 查找函数被调用的位置 查找某个符号在工程 ...
- 【原创】vim插件安装简介
一.安装vundle(vim插件管理软件): git clone https://github.com/VundleVim/Vundle.vim 拷贝目录到 ~/.vim/bundle/Vundle. ...
- Linux c++ vim环境搭建系列(4)——vim插件安装配置使用
4. 插件 主要是c++相关的. ~/.vimrc文件在GitHub上有:https://github.com/whuwzp/vim_config 以下内容参考: https://github.com ...
- Vrapper-Eclipse的vim插件安装方法
Vrapper是一款Eclipse的插件,使在Eclipse下编辑文档时可以像使用Vim一样. 它有两种安装方法,在线安装和安装包安装: 在线安装: 打开Eclipse,Help->Instal ...
- MarkDown的vim插件安装
作用:可以使markdown语法高亮.1.安装.使用pathogen插件管理. cd ~/.vim/bundle git clone https://github.com/plasticb ...
- Vim插件安装
一.常用的插件 sudo apt-get install vim vim-scripts vim-docsudo apt-get install ctagssudo apt-get install v ...
- ubuntu vim 插件安装
参考:http://blog.sina.com.cn/s/blog_00f0230d0100y7ih.html 不过由于时间久远,有些已经失效,以上是我的修改过程 参考:https://github. ...
随机推荐
- 聊聊BIO、NIO与AIO的区别
题目:说一下BIO/AIO/NIO 有什么区别?及异步模式的用途和意义? 1F 说一说I/O首先来说一下什么是I/O? 在计算机系统中I/O就是输入(Input)和输出(Output)的意思,针对不同 ...
- python3启航
Python3的基本数据类型 数字 int ,所有功能都放在int里 a1 = 123 a2 = 456 ##int 将字符串转换为数字 a = "123" print(tyep( ...
- MyBatis学习存档(5)——联表查询
之前的数据库操作都是基于一张表进行操作的,若一次查询涉及到多张表,那该如何进行操作呢? 首先明确联表查询的几个关系,大体可以分为一对一和一对多这两种情况,接下来对这两种情况进行分析: 一.建立表.添加 ...
- 【搜索】Partition problem
题目链接:传送门 题面: [题意] 给定2×n个人的相互竞争值,请把他们分到两个队伍里,如果是队友,那么竞争值为0,否则就为v[i][j]. [题解] 爆搜,C(28,14)*28,其实可以稍加优化, ...
- 怎样监听xhr.readyState值的变化
可以使用 xhr.onreadystatechange 属性指向的函数去监听 xhr.readyState 值的变化. 示例如下: var xhr = new XMLHttpRequest(); xh ...
- StoneTab标签页CAD插件 3.2.0
//////////////////////////////////////////////////////////////////////////////////////////////////// ...
- SpringBoot的数据访问
一.JDBC方式 引入starter. <dependency> <groupId>org.springframework.boot</groupId> <a ...
- selenium无头浏览器&规避操作
一.无头浏览器概述: 无头浏览器主要目的是打开浏览器但用户看不到 简单用法如下: from selenium import webdriver from time import sleep from ...
- RabbitMQ的持久化
RabbitMQ的持久化主要体现在三个方面,即交换机持久化,队列持久化及消息持久化 注意,因公司使用php-amqplib来实现RabbitMQ,故之后举例说明的代码均使用的php-amqplib ...
- 在cmd下import cv2报错——OpenCV实现BRISK
平台:win10 x64 +JetBrains PyCharm 2018.2.4 x64 +Anaconda3(python3.7.0+opencv3.4.5) Issue说明:同学发了个python ...