插件管理器之王packer

4,239 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第12天,点击查看活动详情

前言

  • 之前我们已经介绍了vim下插件管理器 Vundle , vim8 之后的 vim-plug 插件管理器,虽然在 neovim 中都市可以 vim-plug 安装的,但是主流还是建议 neovim 中通过 Packer 插件管理器,今天就来尝试一下 Packer 管理器。

安装

  • 我们可以使用git直接安装
 git clone --depth 1 https://github.com/wbthomason/packer.nvim\
  ~/.local/share/nvim/site/pack/packer/start/packer.nvim
  • 除了手动安装,我们还可以在 init.lua 中自动安装。neovim 的默认配置一直都是在 ~/.config/nvim 下的,所以我们这里也是安装在这个路径下。
  • 首先我们在 ~/.config/nvim 下新建一个 init.lua ,这里对应了 vim-plug 中的 init.vim
  • init.lua 中我们主要就是做插件配置,但是为了配置简化,这里将从插件、配置、快捷键、通过快捷键等方向进行拆分,所以在 init.lua 中我们导入模块即可。
 lua require('user')
  • init.lua 同级下我们还需要新建 lua 文件夹,lua 文件夹下会存在 user 文件件,这个就是上面 require 需要的模块位置。

  • 上面的 plugin 目录是安装编译产生的数据,这里不需要管他。在 ~/.config/nvim/lua/user/plugins.lua 这里我们配置需要安装的插件,同时也会对 Packer 插件进行配置管理,还有上面 git clone Packer 的操作也可以放在这里自动完成。

 local fn = vim.fn
 ​
 -- 替代手动安装,采取自动安装
 local install_path = fn.stdpath "data" .. "/site/pack/packer/start/packer.nvim"
 if fn.empty(fn.glob(install_path)) > 0 then
   PACKER_BOOTSTRAP = fn.system {
     "git",
     "clone",
     "--depth",
     "1",
     "https://github.com/wbthomason/packer.nvim",
     install_path,
  }
   print "Installing packer close and reopen Neovim..."
   vim.cmd [[packadd packer.nvim]]
 end
 ​
 -- 安装好插件需要重启neovim , 下面这段配置避免每次重启neovim
 vim.cmd [[
   augroup packer_user_config
     autocmd!
     autocmd BufWritePost plugins.lua source <afile> | PackerSync
   augroup end
 ]]
 ​
 -- Use a protected call so we don't error out on first use
 local status_ok, packer = pcall(require"packer")
 if not status_ok then
   return
 end
 ​
 -- 设置窗口弹出方式安装插件;浮动显示
 packer.init {
   display = {
     open_fn = function()
       return require("packer.util").float { border = "rounded" }
     end,
  },
 }
 -- 插件安装处
 return packer.startup(function(use)
   -- 插件列表开始----------------------
   use "wbthomason/packer.nvim" -- 安装Packer插件
   -- 插件列表结束------------------
   -- clone好代码后自动安装 , 必须得在放在最后才行
   if PACKER_BOOTSTRAP then
     require("packer").sync()
   end
 end)
 ​
  • 到这里 Packer 插件管理器就可以正常安装了。

使用命令

  • nvim +PackerSync : 安装插件
  • nvim +PackerClean : 更新插件 , 也可以看做是卸载插件。