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.rhkb.cn/news/92892.html

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

相关文章

log4j:WARN No appenders could be found for logger问题

本文将idea场景下的使用。 IDEA中,将配置文件命名为log4j.properties(该命名才会被自动加载), 并放到某个目录下(通常放到resources目录),并在resources上右键,找到Mark Directory a…

Nginx转发请求到后端服务报400 Bad Request

问题描述 系统部署好后,进行测试时发现有部分接口出错,项目采用Nginx作为后端代理服务器,有Nginx统一将请求转发到后端的网关服务,再由网关服务路由到具体的服务上,发布好后,大部分接口都是正常的&#xff…

POSTGRESQL 关于2023-08-14 数据库自动启动文章中使用KILL 来进行配置RELOAD的问题解释...

开头还是介绍一下群,如果感兴趣Polardb ,mongodb ,MySQL ,Postgresql ,redis ,SQL SERVER ,ORACLE,Oceanbase 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请加 liuaustin3微信号 &…

常见排序集锦-C语言实现数据结构

目录 排序的概念 常见排序集锦 1.直接插入排序 2.希尔排序 3.选择排序 4.堆排序 5.冒泡排序 6.快速排序 hoare 挖坑法 前后指针法 非递归 7.归并排序 非递归 排序实现接口 算法复杂度与稳定性分析 排序的概念 排序 :所谓排序,就是使一串记录&#…

【计算机网络】13、ARP 包:广播自己的 mac 地址和 ip

机器启动时,会向外广播自己的 mac 地址和 ip 地址,这个即称为 arp 协议。范围是未经过路由器的部分,如下图的蓝色部分,范围内的设备都会在本地记录 mac 和 ip 的绑定信息,若有重复则覆盖更新(例如先收到 ma…

ESP32+VSCode开发环境搭建(全网最强最终解决方案)

文章目录 1 安装步骤2 开发机器环境准备3 安装ESP-IDF-tools离线包4 创建VSCode配置文件(纯净的开发环境)5 安装espressif IDF 插件6 程序测试7 常见问题7.1环境变量设置问题?问题1:到底是设置IDF_TOOLS_PATH和IDF_PATH还是只配置一个IDF_TOOLS_PATH? 7…

Spring的简介ioc容器及注入方式

一.Spring的简介 1.Spring的特性 Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。 Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。 然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性…

Python文件操作与输入输出:从基础到高级应用

文章目录 🍀引言🍀文件操作基础🍀上下文管理器与文件自动关闭🍀文件的迭代与逐行读取🍀文件的其他常见操作🍀输入输出基础🍀 文件输入输出🍀格式化输出🍀高级文件操作&am…

(二)掌握最基本的Linux服务器用法——Linux下简单的C/C++ 程序、项目编译

1、静态库与动态库 静态库(Static Library):静态库是编译后的库文件,其中的代码在编译时被链接到程序中,因此它会与程序一起形成一个独立的可执行文件。每个使用静态库的程序都会有自己的库的副本,这可能会导致内存浪费。常用后缀…

AI 绘画Stable Diffusion 研究(九)sd图生图功能详解-老照片高清修复放大

大家好,我是风雨无阻。 通过前面几篇文章的介绍,相信各位小伙伴,对 Stable Diffusion 这款强大的AI 绘图系统有了全新的认知。我们见识到了借助 Stable Diffusion的文生图功能,利用简单的几个单词,就可以生成完美的图片…

7-3 求给定精度的简单交错序列部分和

分数 15 全屏浏览题目 切换布局 作者 C课程组 单位 浙江大学 本题要求编写程序,计算序列部分和 1 - 1/4 1/7 - 1/10 ... 直到最后一项的绝对值不大于给定精度eps。 输入格式: 输入在一行中给出一个正实数eps。 输出格式: 在一行中按照“sum S”的格式输出…

.net连接mysql,提示找不到请求的 .Net Framework Data Provider。可能没有安装

开发完成的.net程序需要连接mysql数据库,在个人电脑上运行没问题,别人运行时提示“提示找不到请求的 .Net Framework Data Provider。可能没有安装”。经过查询,安装Connector/NET 8.1.0,下载地址如下所示: https://d…

(分治) 剑指 Offer 16. 数值的整数次方 ——【Leetcode每日一题】

❓剑指 Offer 16. 数值的整数次方 难度:中等 实现 pow(x, n) ,即计算 x 的 n 次幂函数(即, x n x^n xn)。不得使用库函数,同时不需要考虑大数问题。 示例 1: 输入:x 2.00000, n …

腾讯云轻量服务器测评:2核 2G 4M

腾讯云轻量2核2G4M服务器,4M带宽下载速度可达512KB/秒,系统盘为50GB SSD盘,300GB月流量,地域节点可选上海、广州和北京,腾讯云百科分享腾讯云2核2G4M轻量应用服务器配置性能表: 目录 腾讯云轻量2核2G4M服…

谈谈网络协议的定义、组成和重要性

个人主页:insist--个人主页​​​​​​ 本文专栏:网络基础——带你走进网络世界 本专栏会持续更新网络基础知识,希望大家多多支持,让我们一起探索这个神奇而广阔的网络世界。 目录 一、网络协议的定义 二、网络协议的组成 1、…

Vite更新依赖缓存失败,强制更新依赖缓存

使用vitets开发一段时间了,感觉并不是想象中的好用,特别是出现些稀奇古怪的问题不好解决,比如下面这个问题 上午9:50:08 [vite] error while updating dependencies: Error: ENOENT: no such file or directory, open E:/workspace-dir/node…

常见期权策略类型有哪些?

这几天在做一个期权策略类型的整理分类,怎么解释期权策略,期权策略是现代金融市场中运用非常广泛、变化非常丰富、结构非常精妙的金融衍生产品;同时也是一种更为复杂也更为灵活的投资工具,下文介绍常见期权策略类型有哪些&#xf…

区间预测 | MATLAB实现QRLSTM长短期记忆神经网络分位数回归时间序列区间预测

区间预测 | MATLAB实现QRLSTM长短期记忆神经网络分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRLSTM长短期记忆神经网络分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现QRLSTM长短期记忆神经网络分位数回归时间序…

【Git】(四)子模块

1、增加子模块 进入准备添加子模块所在的目录,例如library。 git submodule add -b 1.0.0.0 gitgitee.com:sunriver2000/SubModule.git参数-b用于指定子模块分支。 2、更新子模块 git submodule update --progress --init --recursive --force --remote -- "…

[Go版]算法通关村第十一关白银——位运算的高频算法题

目录 专题1:位移的妙用题目:位1的个数(也被称为汉明重量)解法1:遍历所有位,判断每个位的数字是否是1Go代码 解法2:依次消除每个1的位 numnum&(num-1)Go代码 题目:比特位计数思路…