Vim的插件管理器之Vundle

1、安装Vundle插件管理器

Vim可以安装插件,但是需要手动安装比较麻烦,Vim本身没有提供插件管理器,所以会有很多的第三方的插件管理器,有一个vim的插件叫做 “vim-easymotion”,在它的github的安装说明里有列出对于不同的插件管理器vim-easymotion的不同安装方式,它列出的插件管理器有:

  • Pathogen
  • Vundle
  • NeoBundle
  • Vim-Plug
  • Vim8 Native Plugin Manager

这里我们就使用比较常用的Vundle插件管理器,在它的github上有安装说明,可以点击Vundle链接查看Github上的安装说明,然后这里我使用我们熟悉的中文也记录一下安装说明(它可能会过时,最新的请看官方文档):

  1. 在Linux中下载Vundle

    git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
    
  2. 配置插件

    set nocompatible              " 改进的,必须的
    filetype off                  " 必须的" 设置运行时路径以包含 Vundle 并初始化
    set rtp+=~/.vim/bundle/Vundle.vim
    call vundle#begin()
    " 或者,传递 Vundle 应安装插件的路径
    "call vundle#begin('~/some/path/here')" 插件命令必须放在 vundle#begin() 和 vundle#end() 之间。
    " 让Vundle管理Vundle, 必须的
    Plugin 'VundleVim/Vundle.vim'call vundle#end()            " 必须的
    filetype plugin indent on    " 必须的
    " 要忽略插件缩进更改,请改用:
    "filetype plugin on
    "
    " 简要帮助
    " :PluginList       - 列出已安装的所有插件
    " :PluginInstall    - 安装插件; 附加 `!` 来更新 或者使用 :PluginUpdate
    " :PluginSearch foo - 搜索foo; 附加 `!` 来刷新本地缓存
    " :PluginClean      - 删除未使用的插件; 附加 `!` 以自动批准删除
    "
    " 请参阅 :h vundle 了解更多详细信息或 wiki 了解常见问题解答
    " 将您的非插件内容放在此行之后
    

    这里的双引号用于注释说明,在底部提供了4个插件管理器的命令,分别用于插件列表(列出所有已安装插件)、插件安装、插件搜索、插件删除。另外还一个需要留意的信息:安装插件的命令必须写在vundle#begin()vundle#end() 之间,可以看到这里有一个必须安装的插件是'VundleVim/Vundle.vim'。其实原来的代码中还有4个插件被我删除了,因为官方文档告诉我们说移除不需要的插件,这4个插件只是用来演示不同格式支持的示例而已,原示例翻译如下:

    " 插件在Github仓库,比如vim-fugitive插件的github主页为https://github.com/tpope/vim-fugitive,
    " 则我们要安装这个插件时只需要把https://github.com/后面的部分tpope/vim-fugitive复制过来使用即可,如下:
    Plugin 'tpope/vim-fugitive'" 插件来自 http://vim-scripts.org/vim/scripts.html
    " Plugin 'L9'" Git插件没有托管在GitHub上
    Plugin 'git://git.wincent.com/command-t.git'" 在你本地机器的git仓库 (也就是说,当你在自己的插件上工作时)
    Plugin 'file:///home/gmarik/path/to/plugin'" Sparkup Vim 脚本位于此存储库的一个名为 vim 的子目录中。
    " 传递路径以正确设置运行时路径。
    Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}" 如果您已经在其他地方安装了不同的版本,请安装L9并避免命名冲突。
    " Plugin 'ascenator/L9', {'name': 'newL9'}
    

    也就是说插件托管在不同的地方,它的设置就会有所不同。

    把前面的整个文档复制到~/.vimrc文件的开头位置以使用Vundle,如下:
    在这里插入图片描述
    然后保存文件并退出,然后再进入vim(注:如果直接使用:w保存,然后在当前界面执行:PluginInstall是不管用的,具体原因不详),执行:PluginInstall命令开始安装Vundle插件,效果如下: 在这里插入图片描述
    如上图,在底部显示Done!,且没有提示错误,则Vundle插件安装成功!Plugin 'VundleVim/Vundle.vim'的前面显示了一个加号+表明Vundle.vim插件安装成功了。上图中有两个窗口,都是vim窗口,第一个是安装插件的窗口,第二个是我们启动安装命令时的vim窗口,因为我是使用vim命令打开的一个新窗口,并没有打开文件,所以该窗口中什么内容也没有。

2、使用Vundle插件管理器来安装其它插件

有了插件管理器,如需要安装其它的插件就很简单了,只需把要安装的插件的命令复制到vundle#begin()vundle#end() 之间,然后再执行安装命令即可。比如我们要安装vim-easymotion插件,则再次打开~/.vimrc,并在vundle#begin()vundle#end() 之间添加:

Plugin 'easymotion/vim-easymotion'

在vim-easymotion的github上面它会告诉我们使用Vundler管理器的话是复制这句安装命令的,所以不用记这个命令。

保存配置文件并退出,然后再进入vim,然后再执行安装命令,效果如下:
在这里插入图片描述
如上图,Vundle插件前面是一个点,说明此插件之前已经安装好了,在屏幕底部显示 “Processing 'easymotion/vim-easymotion'”表明了目前正在安装的插件,因为插件在github上,如果网络不好可能会安装失败,如下图:

在这里插入图片描述
如上图,状态栏显示 Done!表示安装的流程结束了,但是后面有 “with errors; press l to view log”,这表明安装过程中有错误,可以按下字母l来查看日志,从上面的easymotion前面有个!其实也能知道是easymotion插件没有安装成功,这种情况的话只能多试几次安装命令了。安装成功的效果图如下:
在这里插入图片描述
这里可以看到easymotion插件前面有个加号+,这说明该插件是刚刚安装成功的,而VundleVim前面有一个点.,这说明该插件是之前就安装好了的。

3、卸载插件

比如,我们要删除vim-easymotion插件,打开vim ~/.vimrc,然后找到下面的代码行并将其注释掉(因为可能以后还想装回来):

" Plugin 'easymotion/vim-easymotion'

保存配置文件并退出,然后再进入vim,然后再执行卸载插件的命令:PluginClean,效果如下:
在这里插入图片描述
如上图,它会列出要移除的插件列表,并在底部询问我们是否要继续,输入Y并按回车开始执行移除操作,移除完成之后在插件的前面会显示有一个减号-,表示该插件已经移除,效果如下:
在这里插入图片描述

在这个界面继续输入:PluginList可查看当前已经安装的插件列表,如下:
在这里插入图片描述
从这里也可以看到vim-easymotion插件确实不在了。

4、查看Vundle的帮助文档

可以在任意vim界面中输入如下命令查看帮助文档:

:h vundle

或者,在执行了Vundle的相关命令后,比如执行了:PluginList命令后它会在一个新的vim界面中列表所有已安装的插件,在这个界面中按h即可查看帮助文档。如下图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/42721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GRPC 学习记录

GRPC 安装 安装 grpcio、grpcio-tools、protobuf、 pip install grpcio -i https://pypi.tuna.tsinghua.edu.cn/simple pip install grpcio-tools -i https://pypi.tuna.tsinghua.edu.cn/simple pip install protobuf -i https://pypi.tuna.tsinghua.edu.cn/simple常用类型 p…

Minio知识点+linux下安装+面试总结

一 Minio简介 MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小&…

msvcp110.dll是什么意思,msvcp110.dll丢失的解决方法

装好软件或游戏之后,一打开就跳出各种报错信息的情况小伙伴一定见过,其中缺少各种msvcp110.dll文件最常见。小伙伴们一定奇怪,用得好好的电脑,怎么会缺文件呢?为啥其他游戏/应用就没事呢?其实这些“丢失”的…

visual studio 2022配置

前提:我linux c 开发 一直在使用vscode 更新了个版本突然代码中的查找所用引用和变量修改名称不能用了,尝试了重新配置clang vc都不行,估计是插件问题,一怒之下改用visual studio 2022 为了同步2个IDE之间的差别,目前…

QT的核心——信号与槽

目录 回顾C 语言信号 1、信号与槽 2、关联信号与槽 2.1自动关联信号与槽 2.2手动关联信号与槽 2.3断开信号与槽 3、自定义信号 3.1自定义信号使用条件 3.2自定义槽函数使用条件 4、信号与槽参数传递 4.1自定义一个带参的信号 4.2关联带参的信号与槽 4.3发送一个带…

YOLOv5、YOLOv8改进:S2注意力机制

目录 1.简介 2.YOLOv5改进 2.1增加以下S2-MLPv2.yaml文件 2.2common.py配置 2.3yolo.py配置 1.简介 S2-MLPv2注意力机制 最近,出现了基于 MLP 的视觉主干。与 CNN 和视觉Transformer相比,基于 MLP 的视觉架构具有较少的归纳偏差,在图像识…

LVS-DR+keepalived实现高可用负载群集

VRRP 通信原理: VRRP就是虚拟路由冗余协议,它的出现就是为了解决静态路由的单点故障。 VRRP是通过一种竞选的一种协议机制,来将路由交给某台VRRP路由。 VRRP用IP多播的方式(多播地址224.0.0.18)来实现高可用的通信&…

基于STM32+OneNet设计的物联网智慧路灯

一、前言 近年来,构筑智慧城市、推动城镇发展被国家列入重要工作范畴。发布的《超级智慧城市报告》显示,全球已启动或在建的智慧城市有1000多个,中国在建500个,远超排名第二的欧洲(90个)。从在建智慧城市的…

Android oaid

官方GitHub地址 https://github.com/gzu-liyujiang/Android_CN_OAID 生成和用途介绍 https://www.jianshu.com/p/1c7ef27d6db4 图片来源于上述网站 其他关于id的介绍 https://www.cnblogs.com/chenKnowledgeConllection/p/17380960.html https://zhuanlan.zhihu.com/p/55…

微信小程序拉起支付报: 调用支付JSAPI缺少参数: total_fee

1. 调用支付JSAPI缺少参数: total_fee 2. 检查返回给前端调起支付的参数是否正确 一开始是params.put("package", prepay_id); 回来改回params.put("package", "prepay_id"prepay_id);

leetcode 415.字符串相加

⭐️ 题目描述 🌟 leetcode链接:https://leetcode.cn/problems/add-strings/description/ ps: 从两个字符串的末尾开始遍历,依次相加,若大于等于 10 则使用一个变量记录进位,遍历的时候若两个字符串其中一…

ASR(自动语音识别)任务中的LLM(大语言模型)

一、LLM大语言模型的特点 二、大语言模型在ASR任务中的应用 浅度融合 浅层融合指的是LLM本身并没有和音频信息进行直接计算。其仅对ASR模型输出的文本结果进行重打分或者质量评估。 深度融合 LLM与ASR模型进行深度结合,统一语音和文本的编码空间或者直接利用ASR…

OKCC在系统安全方面做了哪些措施?

语音通信行业,运营者普遍比较关心的问题是,运营风险如何控制?运营安全如何保证?OKCC呼叫中心又有那些风控措施来保证运营安全。 当前阶段,语音通信运营,最主要的风险主要包括以下几个方面: 一、…

无涯教程-Perl - wait函数

描述 该函数等待子进程终止,返回已故进程的进程ID。进程的退出状态包含在$?中。 语法 以下是此函数的简单语法- wait返回值 如果没有子进程,则此函数返回-1,否则将显示已故进程的进程ID Perl 中的 wait函数 - 无涯教程网无涯教程网提供描述该函数等待子进程终止,返回已故…

Three.js 实现模型材质局部辉光效果和解决辉光影响场景背景图显示的问题

1.Three.js 实现模型材质局部辉光效果 2.解决辉光效果影响场景背景图显示的问题 相关API的使用: 1. EffectComposer(渲染后处理的通用框架,用于将多个渲染通道(pass)组合在一起创建特定的视觉效果) 2. …

Java-运算符和控制语句(上)(基于c语言的补充)

算术运算符 关于求余 不管分子,分母是正还是负,对于分母,直接取正;对于分子若有负号,则先提取出来;剩下两个正的分子分母运算;最后,若刚才的分子有负号,对最后的结果添加…

Java版 招投标系统简介 招投标系统源码 java招投标系统 招投标系统功能设计tbms

​ 项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以…

scala中json4s 使用详解

预备知识 json4s的数据结构AST (Abstract Syntax Tree)。 sealed abstract class JValue case object JNothing extends JValue // zero for JValue case object JNull extends JValue case class JString(s: String) extends JValue case class JDouble(num: Double) extend…

数字化时代,数据仓库和商业智能BI系统演进的五个阶段

数字化在逐渐成熟的同时,社会上也对数字化的性质有了进一步认识。当下,数字化除了前边提到的将复杂的信息、知识转化为可以度量的数字、数据,在将其转化为二进制代码,引入计算机内部,建立数据模型,统一进行…

CAS 一些隐藏的知识,您了解吗

目录 ConcurrentHashMap 一定是线程安全的吗 CAS 机制的注意事项 使用java 并行流 ,您要留意了 ConcurrentHashMap 在JDK1.8中ConcurrentHashMap 内部使用的是数组加链表加红黑树的结构,通过CASvolatile或synchronized的方式来保证线程安全的,这些原理…