前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >三十分钟配置一个顺滑如飞的 Vim

三十分钟配置一个顺滑如飞的 Vim

作者头像
HackforFun
发布2020-01-13 15:12:29
1.7K0
发布2020-01-13 15:12:29
举报
文章被收录于专栏:HackforFunHackforFun

先上疗效,给大家看效果:

安装 Vim

首先说明,vi 和 vim 是两个不同的版本,vi是 vim 的精简版本,功能要弱很多,所以如果你的系统里面只有 vi,请执行 apt install vim 命令更新到 vim,而且最好更新到 8.0 版本。

如果你系统里面没有安装 vim,你打开 vi,看到的应该是下面这样的。

安装 vim 后,你打开 vim,看到的界面是这样的。

注意区分。

安装 Universal-ctags

ctags 的作用是扫描工程中的代码,为代码中定义的函数、变量生成一份 tags 数据库文件,然后我们用 vim 浏览代码的的时候,当光标移动到某个函数或者变量上,只要按下Ctrl+ ] 组合按键,就会自动跳转到这个函数或者变量定义地方。

ctag 目前有两个版本:Exuberant-ctags 和 Universal-ctags,Exuberant-ctags 比较老,目前已经停止维护, Universal-ctags 测是新版本,一直在更新,功能更强大,支持的语言也更多,所以这里安装新版本。

代码语言:javascript
复制
git clone https://github.com/universal-ctags/ctags.git
cd ctags
git checkout 61cc66cf
sudo apt install gcc make pkg-config autoconf automake python3-docutils \
   libseccomp-dev libjansson-dev libyaml-dev libxml2-dev
./autogen.sh
./configure
make
sudo make install

目前只能通过编译源码的方式安装,而且我发现最新的代码有问题,所以回退到了一个可用的版本。

安装 ripgrep

ripgrep 是一个超级强大的命令行搜索工具,看名字就知道,它是来挑战 grep 的,它确实比 grep 好用,强大、简单,目前在 github 上超过了一万六千个 star,可见其受欢迎程度。我现在基本用它来代替了 grep 命令。vim 里面也可以用它来结合 LeaderF 插键搜索函数和变量。

这个软件目前只能通过下载软件包安装,如果你的系统版本比较新,比如 Ubuntu 18.10 或者 Debian 10,倒是可以直接通过 apt install 命令安装。

代码语言:javascript
复制
curl -LO https://github.com/BurntSushi/ripgrep/releases/download/11.0.2/ripgrep_11.0.2_amd64.deb
sudo dpkg -i ripgrep_11.0.2_amd64.deb

第一条命令是下载 ripgrep11.0.2amd64.deb 这个安装包,第二条命令是安装。

安装 vim-pulg

vim-pulg 是一个韩国人写的 vim 插件管理器,目前在 github 上也超过了一万六千个 star,下载安装命令如下:

代码语言:javascript
复制
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

安装 vimrc

vimrc 是 vim 配置文件,通过它可以定制各种 vim 特性。

这里提供了一个最简配置的的 vimrc 在 github 上:https://github.com/andyshrk/dotvim ,下载下来放到 ~/.vim/ 目录下。

代码语言:javascript
复制
curl -fLo ~/.vim/vimrc https://raw.githubusercontent.com/andyshrk/dotvim/master/vimrc

配置比较精简, 之简单解释两个地方:

第一部分:安装了四个插件,这四个插件都是 github star 量非常高的开源项目。

  • LeaderF 主要用来提供高效的搜索:https://github.com/Yggdroot/LeaderF
  • vim-gutentags 自动生成 tags 数据库 :https://githvim-ub.com/ludovicchabant/vim-gutentags
  • fzf 也是提供强大的搜索功能,可以和 Leaderf 互补:https://github.com/junegunn/fzf

第二部分:设置只有在工程项目的根目录下包含 .root 目录才会自动身材 ctags 数据库,因为如果你有一堆的大工程,都要生成数据库的话,还是蛮大。在你想深度分析的工程根目录下建立一个 .root 目录,这样有利于节省空间。

安装插键

  1. 在命令行输入 vim 然后回车。
  2. 在 vim 界面输入 :PlugStatus,回车,可以看到所有的插件都处于未安装状态
  3. 在 vim 界面输入 :PlugInstall , 回车,开始安装插键。
  4. 安装完成后在 vim 界面再输入 :PlugStatus ,回车,可以看到所有固件已经处于 OK 状态。

简单使用

以阅读 Linux 内核代码为例:

在 Linux kernel 的根目录下建立一个 .root 文件夹:

代码语言:javascript
复制
cd linux-imx
mkidr .root
vim
  • 查找文件: \ + F 组合键,然后在输入文件名关键字,按 Enter 选中文件。

可以看到,这里面不用输入准确的文件名字,只需要部分关键字,匹配度最高的文件出现在最上面,还可以通过组合键Ctrl+J或者K上下移动光标, 来选择文件,很高效吧,这是通过 Leaderf 的模糊匹配算法实现的。

  • 跳转到函数定义处: Ctrl + ] 组合键。

光标移动到函数 syscon_regmap_lookup_by_phandle,按Ctrl+]组合键,就跳到这个函数原型处,按Ctrl+o组合键返回。

vim 通过JK两个键上下移动光标。

  • 查找那些地方有调用这个函数: Ctrl + F 组合键

按Ctrl+J或者K上下移动光标, 来选择文件,这里选了atmel-ebi.c 这个文件,然后敲Enter

键跳过去。

  • 打开当前文件的函数列表 可以直接用 LeaderfFunction 命令。

更多的使用技巧可以通过 Leaderf 的 github 查找,或者直接百度也能查到很多用例。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 HackforFun 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装 Vim
  • 安装 Universal-ctags
  • 安装 ripgrep
  • 安装 vim-pulg
  • 安装 vimrc
  • 安装插键
  • 简单使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档