三十分钟配置一个顺滑如水的Vim 先上疗效,给大家看效果: 安装 Vim首先说明,vi 和 vim 是两个不同的版本,vi 是 vim 的精简版本,功能要弱很多,所以如果你的系统里面只有 vi,请执行 apt install vim 命令更新到 vim,而且最好更新到 8.0 版本。 如果你系统里面没有安装 vim,你打开 vi,看到的应该是下面这样的。 安装 vim 后,你打开 vim,看到的界面是这样的。 注意区分。 安装 Universal-ctagsctags 的作用是扫描工程中的代码,为代码中定义的函数、变量生成一份 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目前只能通过编译源码的方式安装,而且我发现最新的代码有问题,所以回退到了一个可用的版本。 安装 ripgrepripgrep 是一个超级强大的命令行搜索工具,看名字就知道,它是来挑战 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-pulgvim-pulg 是一个韩国人写的 vim 插件管理器,目前在 github 上也超过了一万六千个 star,下载安装命令如下: curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.co ... lug/master/plug.vim安装 vimrcvimrc 是 vim 配置文件,通过它可以定制各种 vim 特性。 curl -fLo ~/.vim/vimrc https://raw.githubusercontent.com/andyshrk/dotvim/master/vimrc配置比较精简, 之简单解释两个地方: 第一部分:安装了四个插件,这四个插件都是 github star 量非常高的开源项目。 第二部分: 设置只有在工程项目的根目录下包含 .root 目录才会自动身材 ctags 数据库,因为如果你有一堆的大工程,都要生成数据库的话,还是蛮大。在你想深度分析的工程根目录下建立一个 .root 目录,这样有利于节省空间。 安装插键简单使用以阅读 Linux 内核代码为例: 在 Linux kernel 的根目录下建立一个 .root 文件夹: cd linux-imx
mkidr .root
vim<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 的模糊匹配算法实现的。 光标移动到函数 syscon_regmap_lookup_by_phandle,按 Ctrl + ] 组合键,就跳到这个函数原型处,按Ctrl + o 组合键返回。 vim 通过 J K 两个键上下移动光标。 按Ctrl + J 或者 K 上下移动光标, 来选择文件,这里选了atmel-ebi.c 这个文件,然后敲 Enter 键跳过去。 这里直接用了 LeaderfFunction 这个命令,也可以定义成快捷键。 更多的使用技巧可以通过 Leaderf 的 github 查找,或者直接百度也能查到很多用例。 更多原创请扫码关注公众号:HackforFun
HackforFun
|