neovim 安装配置

neovim 安装配置

安装neovim

github下载安装地址

最新版本下载地址

neovim直接解压,在bin目录下直接执行nvim-qt.exe或者在cmd命令行执行nvim.exe

将neovim添加到path环境变量中,方便在cmd命令行直接可以运行:

image-20211104212446914

windows下使用Chocolate包管理工具进行安装neovim,安装成功之后,不用添加环境变量;

要使用chocolate工具,需要先安装,怎么安装这个包管理工具,大家可以自行百度:

choco install neovim

neovim配置

  • 定义neovim变量

    默认情况下neovim用的所有插件都会放到c盘,如果大家觉得C盘空间紧张,那么需要进行调整,比如放到D盘,可以按照下面方式操作:

    默认 XDG_CONFIG_HOME,XDG_DATA_HOME为空,会使用系统的LOCALAPPDATA变量作为配置文件的读取和插件的安装位置,默认都是在c盘的目录下,为了避免重装系统后neovim需要重配置的问题,我们将这两个位置调整一下,我们需要定义下面两个变量,路径可以根据自己的实际情况进行修改。

    # 定义neovim配置文件的路径
    XDG_CONFIG_HOME = D:\program\Neovim\config
    # 定义插件等的路径
    XDG_DATA_HOME = D:\program\Neovim\config
    
image-20211106192749837
  • 创建初始化文件

    创建neovim的配置文件,先查看一下在windows下配置文件所在的路径

    # 打开neovim
    nvim
    # 打开后输入直接输入下面的命令
    :help config
    
    image-20211105184242013

    在windows下默认的neovim的配置文件的路径在~/AppData/Local/nvim/init.vim,上面我们定义了两个变量,配置文件放在自定义的路径下

    # 在powershell下查看一下,下面的两个变量是否存在
    $env:XDG_CONFIG_HOME
    $env:XDG_DATA_HOME
    # 定义neovim配置文件的路径
    XDG_CONFIG_HOME = D:\program\Neovim\config
    # 定义插件等的路径
    XDG_DATA_HOME = D:\program\Neovim\config
    
    image-20211106213730314

    为方便插件及配置文件的管理,创建了不同功能的目录,这些目录是按照neovim官网的建议创建;

    在$XDG_CONFIG_HOME/nvim路径下创建:/after,/ftplugin,/lua,/pack,/plugged/,/syntax目录

    创建init.lua为neovim的主配置文件,plugin.vim为插件配置文件;

    关于neovim的配置文件的目录结构可以参考lua的中文手册,有条件的可以看github,打不开的话可以看我gitee同步过来的手册:https://gitee.com/teachtea/nvim-lua-guide-zh

    image-20211106210011416

    init.vim或者init.lua文件;其他目录视情况创建,为方便的进行插件管理,建议创建如下的目录结果

     $XDG_CONFIG_HOME/nvim
    ├──  after
    ├──  ftplugin
    ├──  lua
    │  ├──  myluamodule.lua
    │  └──  other_modules
    │     ├──  anothermodule.lua
    │     └──  init.lua
    ├──  pack
    ├──  plugged
    ├──  syntax
    └── init.lua
    └── plugin.vim
    

neovim插件安装

  • 安装neovim插件管理器:vim-plug

    使用vim-plug进行nvim的插件管理,当然还有其他的包管理工具,根据自己的喜好可以自行安装;

    默认情况下vim-plug下载插件的位置是github,下载速度大家懂得,参考网上的教程我修改了vim-plug的下载路径为国内github的镜像站,有兴趣的可以看一下改成其他的镜像站;

    大家可以从我的gitee下载:https://gitee.com/teachtea/vim-plug/raw/master/plug.vim

    在powershell 下执行下面命令安装vim-plug脚本

    iwr -useb https://gitee.com/teachtea/vim-plug/raw/master/plug.vim |`
        ni "$(@($env:XDG_DATA_HOME, $env:LOCALAPPDATA)[$null -eq $env:XDG_DATA_HOME])/nvim-data/site/autoload/plug.vim" -Force
    
  • 安装插件

    我们将安装插件的脚步放在一个单独的文件中,方便管理,lua文件不识别vim-plug包管理命令,当然可以使用其他lua支持的包管理工具,我这使用单独的文件进行插件管理,会更清晰一些;

    打开nvim时,默认使用的是init.lua或者init.vim文件,可以指定其他的配置文件:nvim -u plugin.vim

    编辑plugin.vim文件,先安装一个lsp的插件

    # 要安装的插件包裹在call plug#begin()和call plug#end()中间
    call plug#begin()
    Plug 'neovim/nvim-lspconfig'
    call plug#end()
    

    编辑好plugin.vim后,我们使用下面命令重新打开nvim,然后执行命令进行插件安装

    # 打开nvim,使用指定的配置文件打开
    nvim -u plugin.vim
    # 执行安装命令,安装全部插件,写在plug后面的插件就会被安装
    :PlugInstall
    

    如果收入名:PlugInstall不存在,说明vim-plug插件安装有问题,如果是自定的插件路径,注意上面两个变量配置是否正确


    安装插件

    注意第一次安装插件可能会有一些告警信息,可以忽略,有重度强迫症的患者可以执行下面语句进行治疗:

    注意是git命令,插件的下载依赖于git命令,没有安装git需要提前安装好。

    git config --global http.sslVerify true
    
    image-20211105212311455
    image-20211105212349190
  • 插件配置

    在lua下面创建mappings.lua文件,里面存放快捷键的配置。

    --重命名lua下面的几个命令的名称方面后面使用
    local cmd = vim.cmd
    local fn = vim.fn
    local g = vim.g
    local opt = vim.opt
    
    local function map(mode,lhs,rhs,opts)
      local options = {noremap=true}
      if opts then options=vim.tbl_extend('force',options,opts) end
      vim.api.nvim_set_keymap(mode,lhs,rhs,options)
    end
    
    --配置选项
    cmd 'colorscheme desert'
    opt.completeopt={'menuone','noinsert','noselect'}
    opt.expandtab=true
    opt.hidden=true
    opt.ignorecase=true
    opt.joinspaces=false
    opt.list=true
    opt.number=true
    opt.relativenumber=true
    opt.scrolloff=4
    opt.shiftwidth=2
    opt.sidescrolloff=8
    opt.smartcase=true
    opt.smartindent=true
    opt.splitbelow=true
    opt.splitright=true
    opt.tabstop=2
    opt.termguicolors=true
    opt.wildmode={'list','longest'}
    opt.wrap=false
    
    --键盘映射
    map('', 'c', '"+y')       -- Copy to clipboard in normal, visual, select and operator modes
    map('i', '', 'u')  -- Make  undo-friendly
    map('i', '', 'u')  -- Make  undo-friendly
    
    --  to navigate the completion menu
    map('i', '', 'pumvisible() ? "\\" : "\\"', {expr = true})
    map('i', '', 'pumvisible() ? "\\" : "\\"', {expr = true})
    
    map('n', '', 'noh')    -- Clear highlights
    map('n', 'o', 'm`o``')  -- Insert a newline in normal mode
    
    -------------------- TREE-SITTER ---------------------------
    --local ts = require 'nvim-treesitter.configs'
    --ts.setup {ensure_installed = 'maintained', highlight = {enable = true}}
    
    -------------------- LSP -----------------------------------
    --local lsp = require 'lspconfig'
    --local lspfuzzy = require 'lspfuzzy'
    
    -- We use the default settings for ccls and pylsp: the option table can stay empty
    --lsp.ccls.setup {}
    --lsp.pylsp.setup {}
    --lspfuzzy.setup {}  -- Make the LSP client use FZF instead of the quickfix list
    
    map('n', ',', 'lua vim.lsp.diagnostic.goto_prev()')
    map('n', ';', 'lua vim.lsp.diagnostic.goto_next()')
    map('n', 'a', 'lua vim.lsp.buf.code_action()')
    map('n', 'd', 'lua vim.lsp.buf.definition()')
    map('n', 'f', 'lua vim.lsp.buf.formatting()')
    map('n', 'h', 'lua vim.lsp.buf.hover()')
    map('n', 'm', 'lua vim.lsp.buf.rename()')
    map('n', 'r', 'lua vim.lsp.buf.references()')
    map('n', 's', 'lua vim.lsp.buf.document_symbol()')
    

你可能感兴趣的:(neovim 安装配置)