玩转VIM之将Vim全副武装
玩转VIM之将Vim全副武装
懒癌末期的我貌似很久没有写博客了,已经欠了多少篇在计划中的博客我已然不好意思说了。好了,言归正传,在前三篇介绍了Vim作为代码编辑器之后可能会有人说,要学习那么多指令真的就比真正的IDE好用么?在IDL里面有自动补全,有自动生成各种格式的代码,岂不是方便至极,效率高Vim好几条街好么?而且还能调背景色以及代码颜色可以方便调试blablabla、、、恩,我只想说这是因为你并不真正的了解传说中的Vim,你以为它就没有自动补全高亮显示拼写检查这些么?太天真了~另外请问你打开IDE的时候能开N多其它软件而不卡么?总而言之言而总之我就是喜欢Vim。下面开始介绍如何将Vim打造成工作中的神器。
主题
第一步咱们还是说说主题吧,不管怎么说,一个好看的背景以及代码颜色不仅赏心悦目而且也能间接的提高工作效率,so,换种主题换种心情~由于编码工作中偏爱Sublime text 2的背景色,因此我找了个和这个差不多的Vim主题,名为monokai。喜欢的朋友可以从这里下载。不喜欢的朋友可以网上搜索自己喜欢的主题进行配置。下面说一下如何对Vim的主题进行配置:
- 首先你需要建立一个文件夹.vim,在根目录下(如果有的话请直接跳到第2步)。具体操作如下:
$ mkdir ~/.vim
- 接下来在.vim目录下创建一个名为colors的目录,将你下载的主题文件*.vim放到这个目录下。
- 最后一步,编辑.vimrc文件,使用下载的目录:
$vim ~/.vimrc
在里面加入如下两行代码:
syntax enable
colorscheme monokai
再次用Vim打开文件你将看到如下的界面:

Vim上的插件管理神器-Vundle
至于为什么一上来不先介绍各种功能强大的插件,这当然是有原因的。众所周知,VIM的强大不仅仅体现在操作的高效率,更有强大而充沛的插件做支援,插件丰富了之后,就面临查找和管理的问题。如果每个插件都要自己手动安装,那么将是一件多么耗时的工作,麻烦且毫无意义,因为别人用了Vundle插件管理神器之后分分钟自动安装完毕,你却一个个手动安装,我只能说:你好勤快!反正我这种懒人是不会那么做的。好了,接下来说下如何使用Vundle来管理各种插件吧。首先,你要确保你电脑上已然安装了Git,并且你也会使用它的一些简单的指令。不知道的同学可以看这里。然后执行如下指令将Vundle项目clone到本地。指令如下:
$ git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
OK之后,先在你的~/.vimrc里面进行一些配置,配置清单如下:
set nocompatible " 必须
filetype off " 必须 " 设置含有并且初始化Vundle的运行环境
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin() Plugin 'gmarik/Vundle.vim' Plugin 'tpope/vim-fugitive' call vundle#end() " required
filetype plugin indent on " required
" Brief help
" :PluginList - lists configured plugins
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line
现在简单说一下如何使用这个插件管理神器,首先你需要把你想要安装的插件都放在下面的两行代码之间。
call vundle#begin()
call vundle#end()
其中第8行的时必装的Plugin,这样才能让Vundle管理插件,最后再简单介绍一下使用方法(其实刚刚贴出来的里面已经有了英文的简单的help)。
- :PluginList 列出配置的Plugins。
- :PluginInstall 安装在vundle#begin()和vundle#end()之间的插件。
- :PluginClean 卸载不在vundle#begin()和vundle#end()代码段之间的插件。
基本情况就是酱紫了。下面重点介绍两个最赞的插件。
自动补全神器—YCM
听名字就知道是干嘛的,好多人说IDE效率高,因为有自动补全,其实我想说,其实Vim也是有的,YCM包含以下的几个插件的功能,所以以下的插件可以不用装了,地址在这里:
clang_complete
AutoComplPop
Supertab
neocomplcache
jedi(对python的补全)
另外YCM的常用快捷键如下所示:
ctrl+j 选择下一个补全
ctrl+k 选择上一个补全 ctrl+n 选择下一个补全
ctrl+p 选择上一个补全
回车 选中
,jd 跳转到函数定义, 分屏打开一个buffer(非常有用!!!!!!!!!)
,gd 跳到声明位置, 仅 filetypes: c, cpp, objc, objcpp, python 有效(比较少用)
效果图如下:

目录树神器-Nerdtree
有时候工作的时候发现从在编辑一个文件的时候想打开另一个文件很麻烦,不像IDE在左侧有个目录,这个需求那么大的功能Vim插件会没有?你错了,当然有。那就是Nerdtree。
更为强大的是Nerdtree还有各种你想不到的方便的功能,常用的快捷键如下:
在nerdtree窗口常用操作:(小写当前,大写root)
x.......收起当前目录树
X.......递归收起当前目录树
r.......刷新当前目录
R.......刷新根目录树 p.......跳到当前节点的父节点
P.......跳到root节点
k/j.....上下移动
K.......到同目录第一个节点
J.......最后一个节点 o.......Open files, directories and bookmarks s.......split上下分屏[原来是i, 改键]
v.......vsplit左右分屏[原来是s, 改键] c.......将当前目录设为根节点
q.......关闭
下面上一个效果图:

更多的插件请看这里。好了,赶紧用插件武装你的Vim了。另外提一个忠告:插件并不是越多越好,够用就行~
玩转VIM之将Vim全副武装的更多相关文章
- VIM使用(一) VIM插件管理利器-vundle
有关VIM的文件网上一大堆,这里只是记录一下我新配置环境的步骤.以备查看参考. sudo apt-get install gitgit clone https://github.com/gmarik/ ...
- vim常用命令 vim键盘布局
vim键盘布局,vim快捷键 vim常用命令:
- Cygwin下安装vim后,vim中退格键无法正常使用
问题描述: 在Cygwin中安装完vim后 进入vim,发现上下左右键和退格键都无法正常使用 问题分析: 首先考虑到的就是缺少vim的配置文件,首先查看/etc路径下是否有vim的配置文件 admin ...
- vim note(6)--vim的一个较全的介绍(转)
vim的配置文件 ~/.vimrc 用户的默认配置文件 ~/.vim/plugin/ 用户的默认脚本文件的存放文件夹 ~/.vim/ftplugin/ 用户的默认文件类型相关脚本文件的 ...
- 请通过vim练习:vim vimtutor
vim vimtutor ================================================================================ W e l ...
- vim 安装Vundle.vim
1.下载 git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 2.配置vimrc set no ...
- linux 下vi与vim区别以及vim的使用
vi与vim vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器.他是我们使用Linux系统不能缺少的工具.由于对 ...
- Linux centosVMware Vim介绍、vim颜色显示和移动光标、vim一般模式下移动光标、vim一般模式下复制、剪切和粘贴
一.Vim介绍 vim 是一款功能强大的文本编辑器,是vi的升级版,带有颜色显示, 默认有三种模式:一般模式, 命令模式, 编辑模式 安装Vim [root@davery ~]# vim /et ...
- linux下vi与vim区别以及vim的使用-------vim编辑时脚本高光显示语法
vi与vimvi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器.他是我们使用Linux系统不能缺少的工具.由于对U ...
随机推荐
- Codeforces Round #431 (Div. 2)
A. Odds and Ends Where do odds begin, and where do they end? Where does hope emerge, and will they e ...
- BestCoder Round #81 (div.2)
HDU:5670~5764 A题: 是一个3进制计数: #include <bits/stdc++.h> using namespace std; ]; int calc(long lon ...
- D - Going Home POJ - 2195 网络流
On a grid map there are n little men and n houses. In each unit time, every little man can move one ...
- Windows7安装Envi4.8简体中文破解版
在正式安装前,建议先完整阅读本教程!本教程所使用的是Envi 4.8 32 位安装包,径测试,在64位windows7上可以正常安装使用!本教程就是在64位windows7上安装32位Envi4.8! ...
- 【luogu P3373 线段树2】 模板
题目链接:https://www.luogu.org/problemnew/show/P3373 lazy标记两个,先乘后加 #include <iostream> #include &l ...
- HDU 1077 Catching Fish(用单位圆尽可能围住多的点)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1077 Catching Fish Time Limit: 10000/5000 MS (Java/Oth ...
- Python—面向对象05 反射
反射,通过字符串映射到对象属性 class People: country='China' def __init__(self,name,age): self.name=name self.age ...
- C# Pascal 命名规则
在以前版本的Visual Studio中,微软曾建议使用匈牙利命名法来写代码,并鼓励开发这位写出统一格式的代码而使用相同的法则.在最近发布的.NET和它的编程语言中,微软更换了他的这一法则.如果你用过 ...
- deep learning学习记录二
接着我的微博继续八卦吧 微博里问了几个人,关于deep learning和cnn的区别,有不少热心网友给了回答,非常感谢.结合我听课和看文章的理解,我大胆大概总结一下: 在上世纪90年代,neural ...
- JAVA面向对象思想理解分析
1.面向对象是面向过程而言.两者都是一种思想.面向过程:强调的是功能行为.(强调过程.动作)面向对象:将功能封装进对象,强调了具备了功能的对象.(强调对象.事物)面向对象是基于面向过程的.将复杂的事情 ...