野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17130|回复: 6

[经验\资料] 三十分钟配置一个顺滑如水的Vim

[复制链接]
发表于 2019-11-8 09:49:11 | 显示全部楼层 |阅读模式
三十分钟配置一个顺滑如水的Vim
先上疗效,给大家看效果:
安装 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 则是新版本,一直在更新,功能更强大,支持的语言也更多,所以这里安装新版本。
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 命令安装。
curl -LO https://github.com/BurntSushi/ri ... ep_11.0.2_amd64.deb
sudo dpkg -i ripgrep_11.0.2_amd64.deb
第一条命令是下载 ripgrep_11.0.2_amd64.deb 这个安装包,第二条命令是安装。
安装 vim-pulg
vim-pulg 是一个韩国人写的 vim 插件管理器,目前在 github 上也超过了一万六千个 star,下载安装命令如下:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.co ... lug/master/plug.vim安装 vimrc
vimrc 是 vim 配置文件,通过它可以定制各种 vim 特性。
这里提供了一个最简配置的的 vimrc 在 github 上: https://github.com/andyshrk/dotvim ,下载下来放到 ~/.vim/ 目录下。
curl -fLo ~/.vim/vimrc https://raw.githubusercontent.com/andyshrk/dotvim/master/vimrc
配置比较精简, 之简单解释两个地方:
第一部分:安装了四个插件,这四个插件都是 github star 量非常高的开源项目。
第二部分: 设置只有在工程项目的根目录下包含 .root 目录才会自动身材 ctags 数据库,因为如果你有一堆的大工程,都要生成数据库的话,还是蛮大。在你想深度分析的工程根目录下建立一个 .root 目录,这样有利于节省空间。
安装插键
  • 在命令行输入 vim 然后回车。
  • 在 vim 界面输入 : PlugStatus,回车,可以看到所有的插件都处于未安装状态
  • 在 vim 界面输入 lugInstall , 回车,开始安装插键。
  • 安装完成后在 vim 界面再输入 : PlugStatus ,回车,可以看到所有固件已经处于 OK 状态。

简单使用
以阅读 Linux 内核代码为例:
在 Linux kernel 的根目录下建立一个 .root 文件夹:
cd linux-imx
mkidr .root
vim
  • 查找文件: \  +  F   组合键,然后在输入文件名关键字,按  Enter  选中文件。

<img referrerpolicy="no-referrer" alt="" src="https://andyshrk.gitee.io/imgrepo/VIM/VIM-lookup-file.gif" style="box-sizing: border-box; border-width: 0px 4px 0px 2px; border-top-style: initial; border-right-style: solid; border-bottom-style: initial; border-left-style: solid; border-top-color: initial; border-right-color: transparent; border-bottom-color: initial; border-left-color: transparent; border-image: initial; vertical-align: middle; max-width: 100%; cursor: default; display: block; margin: auto;">
可以看到,这里面不用输入准确的文件名字,只需要部分关键字,匹配度最高的文件出现在最上面,还可以通过Ctrl  +  J  或者  K  上下移动光标, 来选择文件,很高效吧,这是通过 Leaderf 的模糊匹配算法实现的。
  • 跳转到函数定义处: Ctrl  +  ]  组合键。

光标移动到函数 syscon_regmap_lookup_by_phandle,按  Ctrl  +  ]  组合键,就跳到这个函数原型处,按Ctrl  +  o  组合键返回。
vim 通过 J   K  两个键上下移动光标。
  • 查找那些地方有调用这个函数: Ctrl  +  F  组合键

按Ctrl  +  J  或者  K  上下移动光标, 来选择文件,这里选了atmel-ebi.c 这个文件,然后敲  Enter
键跳过去。
  • 查找当前打开文件的函数列表。

这里直接用了 LeaderfFunction 这个命令,也可以定义成快捷键。
更多的使用技巧可以通过 Leaderf 的 github 查找,或者直接百度也能查到很多用例。
更多原创请扫码关注公众号:HackforFun

HackforFun

HackforFun

回复

使用道具 举报

发表于 2019-11-9 13:52:43 | 显示全部楼层
很好,我选择vs code
回复 支持 反对

使用道具 举报

发表于 2019-11-12 11:17:48 | 显示全部楼层
楼主为什么不提供一个配置好的.vim和.vimrc文件呢?顺便再搞个脚本能一键安装的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-12 14:40:29 | 显示全部楼层
的过123 发表于 2019-11-12 11:17
楼主为什么不提供一个配置好的.vim和.vimrc文件呢?顺便再搞个脚本能一键安装的

帖子里面有vimrc下载地址啊
回复 支持 反对

使用道具 举报

发表于 2019-11-12 16:03:27 | 显示全部楼层
HackforFun 发表于 2019-11-12 14:40
帖子里面有vimrc下载地址啊

太多了,没细看。。git clone https://github.com/Guet-Bantao/vim_config.git 给个类似这样的就很好了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-12 17:57:19 | 显示全部楼层
的过123 发表于 2019-11-12 16:03
太多了,没细看。。git clone https://github.com/Guet-Bantao/vim_config.git 给个类似这样的就很好了

贴的就是git地址
回复 支持 反对

使用道具 举报

发表于 2019-11-21 11:25:05 | 显示全部楼层
牛叉叉,帮顶
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 19:02 , Processed in 0.034977 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表