六一的部落格


关关难过关关过,前路漫漫亦灿灿。



macOS

neovim

题外话 -

github个人博客的域名也是(.io),很Geek,对吧?

但这个域名的全称是 British Indian Ocean Territory ,即英属印度洋领地。


编辑器圣战

Emacs - 神之编辑器

Vim - 编辑器之神

要知道Emacs的插件都是用elisp写的,而neovim的插件可以用lua写。

我在Emacs中使用use-package进行插件管理,本文会介绍nvim.lazy,于neovim中承担对应职能。


官方教程


neovim常用命令

大家学vim的时候都有接触tutor吧,neovim中的tutor和那个类似。

:h Tutor

lua-guide

该学习文档我只提一点,其将 init.lua 放在了 ~/.config/nvim/lua/other_modules/ 目录下,用意我不知。如果使用这种方式无法自动加载init.lua,那就还是放到根目录吧。

:h lua-guide

默认配置文件

本文所有配置适用于macOS

根目录: ~/.config/nvim

neovim支持两种配置文件类型,(.vim)和(.lua)。之前就见过别人诟病vim的配置难以拎清。我已经上手emacs,配置文件也从(.el)升级到(.org)。直接上手neovim也有这方面的考虑。

注意:neovim默认加载根目录下的init.vim或init.lua。


插件管理器

nvim-tree/Installation 的安装举例,github文档中提到了三种插件管理器

  • vim-plug

    vim插件管理器(我没用过)

  • packer.vim

    最后一次更新于2023年8月25日,也就是令人遗憾的断更了

    使用lua编写

  • lazy.nvim

    接下来会介绍的插件管理器

    和emacs有spacemacs以及doo emacs一样,neovim有 LazyVimNvChad

    lazy.nvim只是插件管理器,并且是LazyVim的御用插件管理器。


安装lazy.nvim

  1. 为了验证安装成功,实验性地将安装脚本写在init.lua中

    如果出现报错,考虑一个可能的原因,neovim无法访问github

     1-- 预加载
     2local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
     3if not (vim.uv or vim.loop).fs_stat(lazypath) then
     4   vim.fn.system({
     5         "git",
     6         "clone",
     7         "--filter=blob:none",
     8         "https://github.com/folke/lazy.nvim.git",
     9         "--branch=stable", -- latest stable release
    10         lazypath,
    11   })
    12end
    13vim.opt.rtp:prepend(lazypath)
    14
    15-- 引用lazy.nvim,但不进行任何安装
    16require("lazy").setup({})

    另外,lazy.nvim将插件下载到 ~/.local/share/nvim/lazy/ 目录下,视情况做相应处理

  2. 验证安装成功

    :checkhealth lazy

    或者

    :Lazy

安装nvim-tree

  1. 同样地,将脚本写在init.lua中

    作者提供的安装脚本如下:

     1return {
     2   "nvim-tree/nvim-tree.lua",
     3   version = "*",
     4   lazy = false,
     5   dependencies = {
     6      "nvim-tree/nvim-web-devicons",
     7   },
     8   config = function()
     9      require("nvim-tree").setup {}
    10   end,
    11}

    用于一个插件对应一个lua文件

    我们则需将返回值存到局部变量,并使用lazy.nvim安装

     1local nvim_tree_plugin = {
     2    "nvim-tree/nvim-tree.lua",
     3    version = "*",
     4    dependencies = {"nvim-tree/nvim-web-devicons"},
     5    config = function()
     6        require("nvim-tree").setup {}
     7    end
     8}
     9
    10-- 使用lazynvim安装
    11require("lazy").setup({nvim_tree_plugin})
  2. nvim-tree使用了很多符号,需安装配套字体

    Nerd Fonts

  3. 打开文件树

    :NvimTreeOpen

整理配置文件

  1. 默认配置文件负责主控

    ~/.config/nvim/init.lua

  2. 将其他lua代码放在lua文件夹

    ~/.config/nvim/lua/

  3. 插件管理器放在lua目录下

    ~/.config/nvim/lua/lazynvim-init.lua

  4. 其他插件归整到plugins目录下

    ~/.config/nvim/lua/plugins/


默认配置文件

~/.config/nvim/init.lua

引用lazy.nvim插件

1require("lazynvim-init")

插件管理器

~/.config/nvim/lua/lazynvim-init.lua

 1-- 预加载
 2local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
 3if not (vim.uv or vim.loop).fs_stat(lazypath) then
 4   vim.fn.system({
 5         "git",
 6         "clone",
 7         "--filter=blob:none",
 8         "https://github.com/folke/lazy.nvim.git",
 9         "--branch=stable", -- latest stable release
10         lazypath,
11   })
12end
13vim.opt.rtp:prepend(lazypath)
14
15-- 使用lazynvim安装plugins目录下所有插件
16require("lazy").setup("plugins")

nvim-tree插件

~/.config/nvim/lua/plugins/plugin-nvim-tree.lua

 1return {
 2   "nvim-tree/nvim-tree.lua",
 3   version = "*",
 4   lazy = false,
 5   dependencies = {
 6      "nvim-tree/nvim-web-devicons",
 7   },
 8   config = function()
 9      require("nvim-tree").setup {}
10   end,
11}

查看nvim版本

:!nvim --version

参考

-
lazy.nvim安装
YouTube - lazy.nvim安装
neovim - packer转lazy
lazy.nvim的优势
cnblogs - nvim-tree安装
腾讯云开发者社区 - nvim-tree安装
neovim默认配置文件路径
nvim - lua教程
neovim - Tutor
vim到neovim的配置迁移参考
MIT - The Missing Semester of Your CS Education

neovim初上手


macOS

neovim

题外话 -

github个人博客的域名也是(.io),很Geek,对吧?

但这个域名的全称是 British Indian Ocean Territory ,即英属印度洋领地。


编辑器圣战

Emacs - 神之编辑器

Vim - 编辑器之神

要知道Emacs的插件都是用elisp写的,而neovim的插件可以用lua写。

我在Emacs中使用use-package进行插件管理,本文会介绍nvim.lazy,于neovim中承担对应职能。


官方教程


neovim常用命令

大家学vim的时候都有接触tutor吧,neovim中的tutor和那个类似。

:h Tutor

lua-guide

该学习文档我只提一点,其将 init.lua 放在了 ~/.config/nvim/lua/other_modules/ 目录下,用意我不知。如果使用这种方式无法自动加载init.lua,那就还是放到根目录吧。

:h lua-guide

默认配置文件

本文所有配置适用于macOS

根目录: ~/.config/nvim

neovim支持两种配置文件类型,(.vim)和(.lua)。之前就见过别人诟病vim的配置难以拎清。我已经上手emacs,配置文件也从(.el)升级到(.org)。直接上手neovim也有这方面的考虑。

注意:neovim默认加载根目录下的init.vim或init.lua。


插件管理器

nvim-tree/Installation 的安装举例,github文档中提到了三种插件管理器

  • vim-plug

    vim插件管理器(我没用过)

  • packer.vim

    最后一次更新于2023年8月25日,也就是令人遗憾的断更了

    使用lua编写

  • lazy.nvim

    接下来会介绍的插件管理器

    和emacs有spacemacs以及doo emacs一样,neovim有 LazyVimNvChad

    lazy.nvim只是插件管理器,并且是LazyVim的御用插件管理器。


安装lazy.nvim

  1. 为了验证安装成功,实验性地将安装脚本写在init.lua中

    如果出现报错,考虑一个可能的原因,neovim无法访问github

     1-- 预加载
     2local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
     3if not (vim.uv or vim.loop).fs_stat(lazypath) then
     4   vim.fn.system({
     5         "git",
     6         "clone",
     7         "--filter=blob:none",
     8         "https://github.com/folke/lazy.nvim.git",
     9         "--branch=stable", -- latest stable release
    10         lazypath,
    11   })
    12end
    13vim.opt.rtp:prepend(lazypath)
    14
    15-- 引用lazy.nvim,但不进行任何安装
    16require("lazy").setup({})

    另外,lazy.nvim将插件下载到 ~/.local/share/nvim/lazy/ 目录下,视情况做相应处理

  2. 验证安装成功

    :checkhealth lazy

    或者

    :Lazy

安装nvim-tree

  1. 同样地,将脚本写在init.lua中

    作者提供的安装脚本如下:

     1return {
     2   "nvim-tree/nvim-tree.lua",
     3   version = "*",
     4   lazy = false,
     5   dependencies = {
     6      "nvim-tree/nvim-web-devicons",
     7   },
     8   config = function()
     9      require("nvim-tree").setup {}
    10   end,
    11}

    用于一个插件对应一个lua文件

    我们则需将返回值存到局部变量,并使用lazy.nvim安装

     1local nvim_tree_plugin = {
     2    "nvim-tree/nvim-tree.lua",
     3    version = "*",
     4    dependencies = {"nvim-tree/nvim-web-devicons"},
     5    config = function()
     6        require("nvim-tree").setup {}
     7    end
     8}
     9
    10-- 使用lazynvim安装
    11require("lazy").setup({nvim_tree_plugin})
  2. nvim-tree使用了很多符号,需安装配套字体

    Nerd Fonts

  3. 打开文件树

    :NvimTreeOpen

整理配置文件

  1. 默认配置文件负责主控

    ~/.config/nvim/init.lua

  2. 将其他lua代码放在lua文件夹

    ~/.config/nvim/lua/

  3. 插件管理器放在lua目录下

    ~/.config/nvim/lua/lazynvim-init.lua

  4. 其他插件归整到plugins目录下

    ~/.config/nvim/lua/plugins/


默认配置文件

~/.config/nvim/init.lua

引用lazy.nvim插件

1require("lazynvim-init")

插件管理器

~/.config/nvim/lua/lazynvim-init.lua

 1-- 预加载
 2local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
 3if not (vim.uv or vim.loop).fs_stat(lazypath) then
 4   vim.fn.system({
 5         "git",
 6         "clone",
 7         "--filter=blob:none",
 8         "https://github.com/folke/lazy.nvim.git",
 9         "--branch=stable", -- latest stable release
10         lazypath,
11   })
12end
13vim.opt.rtp:prepend(lazypath)
14
15-- 使用lazynvim安装plugins目录下所有插件
16require("lazy").setup("plugins")

nvim-tree插件

~/.config/nvim/lua/plugins/plugin-nvim-tree.lua

 1return {
 2   "nvim-tree/nvim-tree.lua",
 3   version = "*",
 4   lazy = false,
 5   dependencies = {
 6      "nvim-tree/nvim-web-devicons",
 7   },
 8   config = function()
 9      require("nvim-tree").setup {}
10   end,
11}

查看nvim版本

:!nvim --version

参考

-
lazy.nvim安装
YouTube - lazy.nvim安装
neovim - packer转lazy
lazy.nvim的优势
cnblogs - nvim-tree安装
腾讯云开发者社区 - nvim-tree安装
neovim默认配置文件路径
nvim - lua教程
neovim - Tutor
vim到neovim的配置迁移参考
MIT - The Missing Semester of Your CS Education