前提
在嵌入式开发中,vim是常用的开发工具和代码阅读工具,熟练使用vim会大大提高开发效率。我将从零开始搭建一个用于嵌入式开发的vim环境,本文记录搭建过程方便自己以后使用。
需求
我希望这个vim环境能提供的功能如下:
- 能快速的找到变量,函数,符号的定义在哪里
- 能直接查看当前文件包含的所有声明,类似与source insight的功能
- 打开vim界面之后,最好能够不用退出就能打开其他文件
环境准备
系统:ubuntu-18.04
编译器:需要安装gcc的编译环境
sudo apt install -y build-essential
图形库:curses
sudo apt-get install libncurses5-dev
软件安装
global
首先我安装的是global,这个插件的作用是给项目元马建立索引,可以配合cscope使用,实现我们第一个需求,global中内置了一个gtags-cscope,后续我们使用cscope功能就是有gtags-cscope提供的。安装方式如下
#获取global的官方源码
wget http://tamacom.com/global/global-6.6.4.tar.gz
tar xvf global-6.6.4.tar.gz
#编译源码
cd global-6.6.4
./configure
make
sudo make install
完成了安装之后,我们需要将global配置到vim中使用
cp /usr/local/share/gtags/gtags.vim $HOME/.vim/plugin
global的使用方法如下
#进入项目源码的根目录
gtags -v
会生成3个索引文件GTAGS,GRTAGS,GPATH。然后在这三个文件所在的目录下使用vim就可以满足需求一,但是这样使用起来很麻烦,后续有介绍相应的插件管理这些索引文件。
universal-ctags
后续我们需要使用的显示当前文件函数列表的插件需要ctags的支持,所以这里我们需要安装ctags,推荐 universal-ctags 。安装方式如下
#获取 universal-ctags的源码
git clone https://github.com/universal-ctags/ctags.git
#安装必需的软件
sudo apt install \
gcc make \
pkg-config autoconf automake \
python3-docutils \
libseccomp-dev \
libjansson-dev \
libyaml-dev \
libxml2-dev
#编译代码
./autogen.sh
./configure --prefix=/usr/local
make
make install # may require extra privileges depending on where to install
后面我会介绍一下我的vimrc的配置。