首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

【Vim Masterclass 笔记26】S11L46:Vim 插件的安装、使用与日常管理

  • 25-01-25 06:02
  • 2133
  • 9605
blog.csdn.net

文章目录

  • Section 11:Vim Plugins
  • S11L46 Managing Vim Plugins
    • 1 第三方插件管理工具
    • 2 安装插件使用的搜索引擎
    • 3 Vim 插件的安装方法
    • 4 存放 `Vim` 插件包的路径格式
    • 5 示例一:插件 NERDTree 的安装
    • 6 示例二:插件 ctrlp.vim 的安装
    • 7 示例三:插件 tabular 的安装
    • 8 示例四:插件 easy-motion 的安装与用法
    • 9 示例五:在其他包名下安装插件 vim-fugitive
    • 10 Vim 插件的删除
    • 11 本节要点回顾

写在前面
本篇为全套课程的倒数第二章内容,介绍了 Vim 插件的安装、使用及删除等日常操作。强大如 Vim 这样的封神级编辑器也离不开开源生态的强力支持。回看视频时发现一个很有趣的现象,其他同学在最后两节正课中基本没做任何笔记,可能觉得这些内容不重要就直接跳过了(比如当年的我自己)。这次用心整理知识点,才发现这些插件有很多让人拍案叫绝之处。例如 Fugitive 插件,不仅支持在 Vim 中执行 Git 原生命令,连我自定义的 Git 命令也能成功运行!还有可以快速定位的 easy-motion 插件,完全是一用就停不下来的节奏。古语有云:有善始者实繁,能克终者盖寡。希望我们都能成为那个坚持不懈的克终者!

Section 11:Vim Plugins


S11L46 Managing Vim Plugins


1 第三方插件管理工具

如果 Vim 版本早于 V7.x,安装 Vim 插件需要借助以下第三方插件管理工具:

  • vim-plug
  • Vundle
  • NeoBundle
  • Pathogen

而从 V8.0 以后,Vim 就自带插件管理工具。

本节仅介绍 V8.0 及以上版本的插件管理。


2 安装插件使用的搜索引擎

主要有两个:

  • 谷歌 网站:https://www.google.com/
  • VimAwesome 网站:https://vimawesome.com/

3 Vim 插件的安装方法

由于绝大部分 Vim 插件的源码都托管到了 GitHub 平台,通过 Git 来安装 Vim 第三方插件就成了最简便的安装方式。因此需要先安装 Git。

不同平台安装 Git 的方法 ——

  • RedHat:def install git
  • Debian:apt install git
  • Windows:https://git-scm.com/

然后使用命令 :set packpath + Enter 查看插件存放的路径:

图 46-1:查看 Vim 默认存放插件的路径(Windows 版 v9.1)

【图 46-1:查看 Vim 默认存放插件的路径(Windows 版 v9.1)】


4 存放 Vim 插件包的路径格式

通用格式为:{packpath}/pack/{package-name}

这里的 package 包指代一个或多个插件。多个功能类似或具有协同作用的插件也可以用一个 package 包进行统一管理,例如 ~\vimfiles\pack\git-plugins 这个包(名称自拟)就可以用于存放多个与 Git 相关的 Vim 插件。

在同一个 package 包下,还可以分出 start 和 opt 两个子文件夹,格式分别为:

  • {packpath}/pack/{package-name}/start/{plugin-name}
  • {packpath}/pack/{package-name}/opt/{plugin-name}

例如:

  1. /home/jason/.vim/pack/vendor/start/nerdtree
  2. /home/jason/.vim/pack/vendor/opt/ctrlp
  3. /home/jason/.vim/pack/myplugins/start/nerdtree

二者的区别在于,start 中的插件会自动加载;而 opt 则需要手动加载。

手动加载命令格式::packadd {plugin-directory-name}

例如,执行命令 :packadd vim-fugitive + Enter 后,Vim 会在 packpath 对应的路径中按照匹配规则 pack/*/opt/vim-fugitive 进行搜索。这样就实现了对插件 ~/.vim/pack/git-plugins/opt/vim-fugitive 的加载。

注意:package 包名对 Vim 而言并不那么重要,重要的是插件对应的 路径名。


5 示例一:插件 NERDTree 的安装

NERDTree 是一款让用户在 Vim 中高效浏览和管理文件及目录的第三方 Vim 插件,GitHub 仓库详见:https://github.com/preservim/nerdtree。

下面演示 NERDTree 的安装步骤(假设要求自动加载):

# 1. 创建相关文件夹
> (pwd).Path
C:\Users\ad\vimfiles
> mkdir -p pack/plugins/start | Out-Null
> cd pack/plugins/start
> (pwd).Path
C:\Users\ad\vimfiles\pack\plugins\start

# 2. 复制 NERDTree 仓库
> git clone https://github.com/preservim/nerdtree.git
Cloning into 'nerdtree'...
remote: Enumerating objects: 6269, done.
remote: Counting objects: 100% (94/94), done.
remote: Compressing objects: 100% (56/56), done.
remote: Total 6269 (delta 76), reused 38 (delta 38), pack-reused 6175 (from 4)
Receiving objects: 100% (6269/6269), 2.01 MiB | 697.00 KiB/s, done.
Resolving deltas: 100% (2847/2847), done.
> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

然后输入 vim + Enter 打开 Vim,并输入 :NERDTree + Enter 打开该插件:

图 46-2:以自动加载的方式测试安装并启动插件 NERDTree 看到的初始界面

【图 46-2:以自动加载的方式测试安装并启动插件 NERDTree 看到的初始界面】

根据截图,左侧的目录树可用导航键上下移动光标,按 O 可以展开文件夹(ShiftO 展开所有子文件夹、ShiftX 合拢所有文件夹),按 Enter 键打开光标所在文件。

使用命令 :NERDTree F:\your\target\path\ 还可以直接打开指定路径,轻松实现文件基本操作。

更多用法可按 ? 或查阅插件文档(不过多展开)。


6 示例二:插件 ctrlp.vim 的安装

ctrlp.vim 是另一个功能强大的第三方插件,允许用户通过简洁直观的界面快速搜索和打开文件、缓冲区等内容。

假设还是自动加载,安装过程如下:

# 1. 确认当前路径在 start 文件夹下
> (pwd).Path
C:\Users\ad\vimfiles\pack\plugins\start
# 2. 复制 ctrlp.vim 的 GitHub 代码库
> git clone https://github.com/ctrlpvim/ctrlp.vim.git
Cloning into 'ctrlp.vim'...
remote: Enumerating objects: 4316, done.
remote: Counting objects: 100% (185/185), done.
remote: Compressing objects: 100% (113/113), done.
remote: Total 4316 (delta 78), reused 166 (delta 71), pack-reused 4131 (from 1)
Receiving objects: 100% (4316/4316), 1.71 MiB | 323.00 KiB/s, done.
Resolving deltas: 100% (1668/1668), done.
> ls -n
ctrlp.vim
nerdtree
# 打开 Vim 进行测试
> vim 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

打开 Vim 后,按 Ctrl + P 将进入该插件界面:

图 46-3:打开 Vim 后按【Ctrl + P】看到的插件主界面

【图 46-3:打开 Vim 后按【Ctrl + P】看到的插件主界面】

此时可以检索任意关键字定位目标文件。例如,输入 readme 得到:

图 46-4:输入 readme 后,插件快速筛选出包含 readme 的文件

【图 46-4:输入 readme 后,插件快速筛选出包含 readme 的文件】

此时按 Enter 键即可打开 ctrl.vim\readme.md 文件。

再按 Ctrl + P,输入 tx + CtrlX,可以水平分割窗口,并同时打开匹配关键词 tx 的第一个文件(即 ctrl.vim\doc\ctrlp.txt,如图 46-5 所示):

图 46-5:利用 ctrlp.vim 插件可轻松实现文件检索和多窗口展示

【图 46-5:利用 ctrlp.vim 插件可轻松实现文件检索和多窗口展示】


7 示例三:插件 tabular 的安装

前面两个插件都是自动加载生效的,再来看一个需要手动加载的插件安装操作。示例插件 tabular(https://github.com/godlygeek/tabular)可以根据指定的分隔符格式化文本,实现文本和代码的快速对齐。

按手动加载进行安装,具体过程如下:

# 1. 检查当前所在路径
> (pwd).Path
C:\Users\ad\vimfiles\pack\plugins\start
# 2. 创建并进入 opt 文件夹,要求与 start 文件夹同级
> mkdir ../opt | Out-Null
> cd ../opt
> (pwd).Path
C:\Users\ad\vimfiles\pack\plugins\opt
# 3. 复制 tabular 对应的 GitHub 仓库
> git clone https://github.com/godlygeek/tabular.git
Cloning into 'tabular'...
remote: Enumerating objects: 179, done.
remote: Counting objects: 100% (18/18), done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 179 (delta 8), reused 5 (delta 2), pack-reused 161 (from 1)
Receiving objects: 100% (179/179), 60.33 KiB | 41.00 KiB/s, done.
Resolving deltas: 100% (63/63), done.
> ls -n
tabular
# 4. 打开 Vim 进行测试验证
> vim
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

此时打开 Vim 后,直接运行 :Tab + Enter 并不会打开该插件,Vim 会报错。需要手动执行加载命令 :packadd tabular + Enter(或使用简写形式 :pa tabular + Enter)。

然后在 Vim 中加入一些测试内容:

图 46-6:演示 tabular 插件功能前的示例文本内容

【图 46-6:演示 tabular 插件功能前的示例文本内容】

将光标移至文件开头位置,执行命令 :Tab /| + Enter,测试内容将自动对齐:

图 46-7:利用 tabular 插件快速实现文本对齐

【图 46-7:利用 tabular 插件快速实现文本对齐】

此外,tabular 还支持更多配置选项,例如右对齐每列内容,并要求单词到制表符保持三个空格的距离,输入 :Tab /|/r3 + Enter 即可:

图 46-8:利用 tabular 实现更精细的对齐效果示意图

【图 46-8:利用 tabular 实现更精细的对齐效果示意图】


8 示例四:插件 easy-motion 的安装与用法

easy-motion 插件是对 Vim 原生 motion 操作的功能增强,安装过程与 NERDTree 插件相同,这里不再展开。

GitHub 仓库地址:https://github.com/easymotion/vim-easymotion.git

完成安装后,打开某个示例文件如 nav.txt 后,按两次 Leader 键(即反斜杠键 \) + 原生 motion 键即可启用该插件。例如,键入 \\J 将看到如下界面效果:

图 46-9:按两次 Leader 键 + J 键看到的界面效果截图

【图 46-9:按两次 Leader 键 + J 键看到的界面效果截图】

此时输入左侧红色的字符将快速定位到该字母所在的行。例如按 E 键将直接定位到第 11 行;此时再按 \\K 向上导航,则光标上方的行将同样出现快速导航字母:

图 46-10:按两次 Leader 键 + K 键看到的界面效果截图

【图 46-10:按两次 Leader 键 + K 键看到的界面效果截图】

同理,也可以快速定位到当前行的某个单词,例如按 \\W,将看到:

图 46-11:按两次 Leader 键 + W 键看到的界面效果截图

【图 46-11:按两次 Leader 键 + W 键看到的界面效果截图】

此时不仅可以实现同行单词的快速定位,下方各行的单词也能通过多个快捷键(黄色字符开头的组合键)快速定位。

若要检索单个字符,可以用 \\S,然后输入想要检索的目标字符,例如大写的 T,按回车后将看到:

图 46-12:用 easy-motion 插件实现单个字符的检索截图

【图 46-12:用 easy-motion 插件实现单个字符的检索截图】

可以看到,所有大写的 T 字符都标注了快捷键以便定位。


9 示例五:在其他包名下安装插件 vim-fugitive

前面四个插件都安装在了同一个 package 包下,最后一个演示以插件 vim-fugitive 为例,演示在不同 package 包下插件的安装及使用。

vim-fugitive 插件实现了 Vim 环境下对 Git 相关功能的集成。启用该插件后,用户可以直接在编辑器中执行 Git 命令并轻松管理代码库。

假设该插件需要安装到一个名为 git-stuff 的新 package 包下,具体安装过程如下:

# 1. Check current path
> (pwd).Path
C:\Users\ad\vimfiles\pack\plugins\start
# 2. Make directory git-stuff/start recursively
> mkdir -p ../../git-stuff/start | Out-Null
> cd ../../git-stuff/start
> (pwd).Path
C:\Users\ad\vimfiles\pack\git-stuff\start
# 3. Clone repo to install vim-fugitive plugin
> git clone https://github.com/tpope/vim-fugitive.git
Cloning into 'vim-fugitive'...
remote: Enumerating objects: 9359, done.
remote: Counting objects: 100% (2608/2608), done.
remote: Compressing objects: 100% (165/165), done.
remote: Total 9359 (delta 2483), reused 2447 (delta 2437), pack-reused 6751 (from 3)
Receiving objects: 100% (9359/9359), 2.74 MiB | 486.00 KiB/s, done.
Resolving deltas: 100% (4395/4395), done.
> ls -n
vim-fugitive
# 4. Open the test file with Vim editor
> vim vim-fugitive/README.markdown
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

此时将打开示例文件 vim-fugitive/README.markdown。输入 :Git blame + Enter 将启用该插件,执行与 git blame 同样效果的命令:

图 46-13:利用 Fugitive 插件实现在 Vim 中轻松运行各类 Git 命令(如 git blame 命令)

【图 46-13:利用 Fugitive 插件实现在 Vim 中轻松运行各类 Git 命令(如 git blame 命令)】

另外还需要注意的是,在 Vim 环境下,自动从不同的 package 包加载的 Vim 插件将同时生效。也就是说,此时按 Ctrl + P 将唤起 ctrlp 插件:

图 46-14:多个插件同时生效的编辑器效果截图(同时启用 Fugitive 与 ctrlp 插件)

【图 46-14:多个插件同时生效的编辑器效果截图(同时启用 Fugitive 与 ctrlp 插件)】


10 Vim 插件的删除

方法:直接删除插件文件夹即可。

例如删除 ctrlp 插件:

> cd ~/vimfiles/pack/plugins/start
> (pwd).Path
C:\Users\ad\vimfiles\pack\plugins\start
> ls -n
ctrlp.vim
nerdtree
vim-easymotion
# Remove the ctrlp plugin:
> rm -Recurse -Force ctrlp.vim
> ls -n
nerdtree
vim-easymotion
# Open Vim for verification
> vim
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

打开 Vim 后输入 Ctrl + P,将不再弹出 ctrlp 插件的工作界面。


11 本节要点回顾

  • Vim 插件旨在进一步增强 Vim 编辑器的原生功能,使其更容易操作;
  • 用谷歌或 VimAwesome 网站查找所需插件;
  • package 包可用于分组各 Vim 插件,包名自拟;
  • 要让 Vim 自动加载某插件,将其放到 start 文件夹即可;
    • 路径格式:{packpath}/pack/{package-name}/start/{plugin-name}
  • 同理,若要手动加载某插件,放到对应的 opt 文件夹即可;
    • 路径格式:{packpath}/pack/{package-name}/opt/{plugin-name}
    • 加载命令::packadd {plugin-name} 或 :pa {plugin-name} + Enter
  • 插件的具体安装使用 Git:git clone https://github.com/{plugin-path}
  • 插件的删除:直接删除该插件的文件夹即可。
注:本文转载自blog.csdn.net的安冬的码畜日常的文章"https://blog.csdn.net/frgod/article/details/145313538"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top