Windows上配置gvim并作为C和C++的IDE
前言
在记录开始之前,我想先介绍一下vim和gvim。
vim和gvim
Vim诞生的具体时间虽然没有具体的说明,但是最初创建它的原因据说是因为作者在新购入的计算机这当中并没有找到他熟悉的编辑器Vi,而Vim的诞生,起初是为了完全复制Vi的功能,但是在1992年1.22版本的Vim被移植到UNIX和MS-DOS上时开始,Vim的全名就改为Vi IMproved,此前,Vim的全名为Vi IMitation,也就是从这时起,Vim加入了不计其数的新功能。
Vim作为从Vi里面发展出来的类Vi中最优秀的一款编辑器,拥有代码补全、编译及错误跳转等方便编程的各类功能和插件,在程序员和文档编辑的工作人员中被广泛的使用着,同时也作为无GUI系统上最强的编辑器之一的存在(另一个为Emacs),Vim的操作完全可以不依赖于鼠标进行编辑,使用户的双手可以一直在打字区悬留,且各类插件强大功能的支撑下,Vim赢得了编辑器之神的美誉。
Vim虽然强大,但是从设计之初都只是为了在类UNIX的系统上运行,所以没有GUI也不兼容大多数有GUI的系统,为此,GVim诞生了,GVim拥有对用户较为友善的GUI,且在各大主流平台都有相应的安装包,将Vim完美的兼容到了各个主流平台,并且GUI也使得Vim的门槛也变得比较低,不再是曾经那个不看完说明书都不知道怎么保存退出的编辑器。
环境搭建
因为GVim和其插件以及MinGW对系统环境的要求并不严格,基本上都可以通过安装器直接安装并运行,所以这个环节没有任何内容,可以直接跳过。
MinGW安装
因为是作为C/C++的IDE,所以还需要在windows平台上安装C/C++的编译器,同样,在安装之前,先简单的介绍一下MinGW这个编译器。因为都是些老生常谈且比较浅显的东西,了解MinGW这个编译器的可以跳过介绍部分直接看安装。
MinGW, a contraction of “Minimalist GNU for Windows”, is a minimalist development environment for native Microsoft Windows applications.
MinGW provides a complete Open Source programming tool set which is suitable for the development of native MS-Windows applications, and which do not depend on any 3rd-party C-Runtime DLLs. (It does depend on a number of DLLs provided by Microsoft themselves, as components of the operating system; most notable among these is MSVCRT.DLL, the Microsoft C runtime library. Additionally, threaded applications must ship with a freely distributable thread support DLL, provided as part of MinGW itself).
因为本人的英语水平所限,不对这部分进行翻译,大致意思就是MinGW是一个不依赖于外部C的类库,本身自带了所需的,系统没有的部分类库的一个极简的开发环境。
安装
- 下载
- 曾经有一段时间MinGW的官网http://www.mingw.org/是无法在国内访问的,但是在我编撰这篇记录的时候,我又重新尝试访问了MinGW的官网,结果竟然成功了,在官网里面可以直接找到下载的地址,如果官网不能访问的话,也可以在其它地方进行下载,大部分时候下载到的都是安装器,自带更新检测,所以不用太担心下载不到最新的问题。
- 安装MinGW
- 最开始会选择安装的路径,后面所有下载到的资源文件都放在这个文件夹,所以尽量不要选择空间小的磁盘
- 在最开始会下载一些基本的信息,然后打开新的下载页面
- 选择需要安装的组件,我这里推荐无脑下载MinGW一开始推荐的列表上的所有组件,基本上后续的一些简单的开发都不会遇到编译上面的问题,后面再将需要的组件手动补齐即可,当然,熟悉的人自己选择所需的组件即可
- 等待下载,下载完即可使用
- 配置环境变量
- 新建新的系统变量
MINGW_HOME
存储MinGW的根目录,例如D:\MinGW
- 在系统变量
Path
中添加%MINGW_HOME%\bin
- 新建新的系统变量
注意事项:
虽然不是每个人都会遇到下载失败的问题,但是还是要简单的提一下,因为目前下载器不能自己指定镜像,也不能设置代理,所以基本上是靠自己的网络状况来下载,不过部分可以全局代理的VPN是一个不错的选择,也可以在下载失败之后,记录下失败的文件,手动下载完之后放到自动创建的文件夹底下,下次启动下载器是会检查已下载的文件,存在则跳过下载环节,不过因为我是可以直接下载成功的(虽然下载失败了很多次,但是我重新下载了数次之后将失败的全部都下载下来了),所以对于手动下载的具体操作我也说不好,大家可以自行百度。
GVim安装
下载
- GVim是不盈利的开源项目,在github上面搜索gvim就可以直接找到,不过我还是将可以发布页的链接贴出来,方便大家下载https://github.com/vim/vim-win32-installer/releases
解压
配置环境变量
- 新建新的系统变量
VIM_HOME
接下来就是重头戏了,Vim之所以强大是因为他的可扩展性十分强大,还拥有专门的脚本语言,极大的增强了插件的功能
- 新建新的系统变量
GVim插件的安装
在开始安装插件之前,我想先把我现在安装了的插件和其功能贴出来,方便大家参阅。
这里的功能不完全是插件的功能,而是我在配置我的gvim中所使用的插件的功能,还有许多重要的功能我并没有写出来,同样,等级也是对我自己的gvim来说的重要等级,每个人可以按照自己的需求和对插件的了解重新评估这个等级。
vundle
- 功能:vundle是需要第一个安装的插件,虽然不是安装插件的必然插件,但是可以省下基本的查找、下载、安装的步骤,并且只需要知道名字或者github的链接就可以了。
- 等级:必要
SuperTab
- 功能:根据已存在的内容自动补全
- 等级:重要
TagList
- 功能:taglist是一个用于显示定位程序中各种符号的插件,例如宏定义、变量名、结构名、函数名这些东西 我们将其称之为符号(symbols),而在taglist中将其称之为tag。显然,要想将程序文件中的tag显示出来,需要事先了解全部tag的信 息,并将其保存在一个文件中,然后去解析对应的tag文件。taglist做的仅仅是将tag文件中的内容解析完后显示在Vim上而已。
- 等级:必要
NERDTree
- 功能:NERDTree是一个用于浏览文件系统的树形资源管理外挂,它可以让你像使用Windows档案总管一样在VIM中浏览文件系统并且打开文件或目录。
- 等级:必要
WinManager
- 功能:窗口管理,可以将TagList和NERDTree都控制在同一边并分上下屏,美观还省地方
- 等级:必要
Vim-airline
- 功能:这是一款状态栏增强插件,可以让你的Vim状态栏非常的美观,同时包括了buffer显示条扩展smart tab line以及集成了一些插件。
- 等级:重要
OmniCppComplete
- 功能:C/C++方法自动补齐,但是不打算把Vim当做一个C/C++开发的IDE的话不需要改插件
- 等级:非必要/必要
还有一个不能再Vundle里面安装的插件,ctags,推荐在github上面安装较新版本,ctags 5.8版本不能对更深的层级做递归,在生成Java源码和Java项目源码的tags时,只能生成一部分,需要注意一下
Vundle安装
Vundle是vim的插件管理器,只要安装完了Vundle,剩下的插件基本上就是一行命令的事情,所以,第一个安装的插件应该是Vundle(其实还有其他的插件管理器,不过我也没有用过,所以就不对其他的插件管理器做介绍了,有兴趣的可以自己百度),而Vundle插件的安装则依赖于Git和curl。
安装步骤
- 下载Git和Curl
- Git下载地址:https://github.com/git-for-windows/git/releases/
- Curl下载地址:https://curl.haxx.se/download.html,需要注意的是,页面的最顶端的链接是源码的链接,下载前请看清楚。
- 安装Git,将
Curl.exe
的位置加入系统变量Path
中或者将Curl.exe
放入System32
下。 - 检测环境
- 在控制台输入
git --version
和curl --version
对两个工具进行检测,返回相应的版本信息则表示工具安装完成。
- 在控制台输入
- 安装Vundle
- 在控制台中输入
$ git clone https://github.com/gmarik/vundle.git D:/vim/vim81/bundle/vundle
等待自动下载和安装
- 在控制台中输入
Ctags
Ctags
绝对算得上一个重量级的插件,只要你想要把你的Vim打造成一个强大且适合你自己的IDE,毕竟他可以让你在各个方法和类当中随意跳转,无所拘束,但同时也是一个比较难控制的一个插件,关于这个插件的用法我几乎可以在写一篇,但那是另一篇了,这篇里面我就不多做赘述了。接下来简单讲一下Ctags
的安装。
- 下载
- 在我写这篇文章的时候,百度出来的
Ctags
官网只能下载到5.8的版本,但是这个版本对层级比较深的源码,使用递归获取(指令-R
)是拿不到的,所以要在GitHub
上面下载更新的版本才能解决这个问题。 - Github上Ctags的地址:https://github.com/universal-ctags/ctags-win32/releases
- 在我写这篇文章的时候,百度出来的
- 解压
- 将
ctags.exe
所在的目录地址存入系统变量中
通过Vundle安装剩下的插件
因为剩下的插件安装除了ctags
基本上都可以通过Vundle安装,所以这里贴出我之前提到的插件的配置和安装指令。
1 | " =========================== Plugin Config Start =========================== " |
vundle的基本命令
在vim的命令行模式下,直接输入
:PluginInstall
安装插件:PluginList
查看已安装软件:PluginClean
清除列表中没有的插件:h vundle
查看帮助
或者在控制台直接输入
vim +PluginInstall +qall
安装插件
结语
以上就是搭建一个最最最基本的C/C++的IDE的基本教程,需要注意的是,我的配置文件里面也提到了Java代码自动补齐的插件,如果需要使用该插件,请确保自己的Vim支持Python(Python2或者Python3都可以),可以先在Vim的命令模式中输入
:python print("hello world")
,如果成功在输出的话,而不是提示缺少pythonxx.dll
(xx
指代数字,一般是版本号)的话,就是支持python且电脑已经安装了python环境,如果提示缺少dll,根据最后的数字下载安装就可以了,还有就是在控制台输入vim --version
,如果是+
号就代表支持,-
号代表不支持,也就是说,+python
/+python/dyn
就是支持python2,python3
/python3/dyn
就是支持python3。
如果出现不支持python环境的情况的话(虽然按照我的教程的地址下一般不会出现这个问题,但一定有些人已经有了自己的vim,所以还是要说一下),一般来说有两种办法,一个是重编译vim,使其支持python,好处是能够自己选择vim支持的python的版本,坏处就是windows上面基本没办法重编译,难度很高,另一个办法就简单点,重新下一个,反正vim最核心的还是配置文件和自己的脚本,迁移过来就好了,没有什么影响的。