nvim在win10和mac上的安装和初始设置及插件入门
风雪夜沽村酒
编辑于 2023年11月24日 02:46

//2023年11月23日

一、基本过程

0.全程科学上网

1.安装winget

2.通过winget安装nvim

win10默认安装位置:C:\Program Files\

附:mac上使用homebrew安装:brew install neovim

3.配置nvim的环境变量

4.找到配置文件目录,创建nvim文件夹,创建并配置init.lua,添加最简单配置测试。

%USERPROFILE%\AppData\Local

C:\Users\杜宪\AppData\Local

附:mac下,配置文件应该放在~/.config目录下,在该目录下创建nvim文件夹。

说明:目录 .config 是个隐藏文件夹,可以在终端进入,在finder中,按ctrl + shift + .(点号),也可以显示或隐藏所有文件。

~表示当前用户,比如/Users/xxx,一般为终端打开后默认所在目录。

5.分文件管理,在nvim目录下,新建文件夹lua,在该文件夹下新建basic.lua,plugin.lua,keybindings.lua

6.插件管理器,使用lazy.nvim作为插件管理工具进行插件管理

:Lazy命令查看状态,搭配大写字母如I/U/X操作插件。

7.安装主题插件

tokynight.vim  选用tokyonight-moon

8.安装nvim-tree插件

注:终端配置Nerd字体以显示图标。

9.安装代码语法高亮nvim-treesitter

10.安装文件状态管理器lualine.nvim

11.配置键盘映射--:NvimTreeToggle  --> alt + m

二、配置文件分享

//说明:B站专栏的代码块没有lua格式,此处显示是js格式。

1.init.lua

代码块
JavaScript
自动换行
复制代码
-- 引入基本配置
require("basic")
--引入插件
require("plugin")
--引入按键映射
require("keybindings")

-- 演示如何导入其他目录下的.lua文件方式  创建plugins-config/nvim-tree.lua --不用,只是演示如何在init.lua中引入它
-- require("plugins-config.nvim-tree")
复制成功

2.basic.lua

代码块
JavaScript
自动换行
复制代码
-- 一、配置文件
-- 1.文件相关
-- 将文件的编码格式统一设置为UTF-8
vim.g.encoding = "UTF-8"
vim.o.fileencoding = "UTF-8"

-- 2.缩进
-- 设置每个缩进级别使用的空格数
vim.opt.shiftwidth = 2
vim.opt.tabstop = 2
-- 自动缩进
vim.opt.ai = true
-- 智能缩进
vim.opt.si = true
-- Neovim 会自动在新行添加空格或制表符以匹配现有的缩进级别
vim.opt.autoindent = true

-- 3.显示
-- 显示行号
vim.wo.number = true
-- 高亮当前所在行
vim.wo.cursorline = true
-- 显示左侧图标指示列
vim.wo.signcolumn = "yes"
-- 显示右侧参考线
vim.wo.colorcolumn = "80"
-- 命令行高为2,提供足够的显示空间
vim.o.cmdheight = 2
-- >> << 时移动长度
vim.o.shiftwidth = 2
vim.bo.shiftwidth = 2
-- 光标在行首尾时<Left><Right>可以跳到下一行,非常实用
vim.o.whichwrap = '<,>,[,]'
-- 补全增强
vim.o.wildmenu = true
-- 不可见字符的显示,这里只把空格显示为一个点
-- vim.o.list = true
-- vim.o.listchars = "space:·"
-- 永远显示 tabline 会在左侧状态列的顶上显示文件名
vim.o.showtabline = 2

-- 3.搜索
-- 高亮所有匹配的搜索模式
vim.opt.hlsearch = true
-- 搜索大小写不敏感,除非包含大写
vim.o.ignorecase = true
vim.o.smartcase = true

-- 4.加载文件
-- 当文件被外部程序修改时,自动加载
vim.o.autoread = true
vim.bo.autoread = true

-- 5.配置文件
-- 禁止创建备份文件
vim.o.backup = false
vim.o.writebackup = false
vim.o.swapfile = false

-- nvim-tree
-- disable netrw at the very start of your init.lua
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1

-- set termguicolors to enable highlight groups
vim.opt.termguicolors = true
复制成功

3.plugin.lua

代码块
JavaScript
自动换行
复制代码
-- 二、插件系统
-- 1.插件管理器
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({
    "git",
    "clone",
    "--filter=blob:none",
    "https://github.com/folke/lazy.nvim.git",
    "--branch=stable", -- latest stable release
    lazypath,
  })
end
vim.opt.rtp:prepend(lazypath)

-- 2.安装插件
require("lazy").setup({ 
	-- 所有插件的安装都在这里
	-- 颜色主题插件Colorscheme,这个看个人爱好
	{
	    "folke/tokyonight.nvim",
	    lazy = false,
	    priority = 1000,
	    opts = {}
	},
	-- 文件管理器
	{
	    "nvim-tree/nvim-tree.lua",
	    version = "*",
	    lazy = false,
	    dependencies = {"nvim-tree/nvim-web-devicons"},
	    config = function()
	        require("nvim-tree").setup {}
	    end
	}, 
	-- 代码语法高亮,支持多种语言
	{"nvim-treesitter/nvim-treesitter"}, 
	-- 插件:文件状态展示插件
	{
	    'nvim-lualine/lualine.nvim',
	    config = function()
	        require('lualine').setup()
	    end
	}
})

-- 3.启动插件
vim.cmd.colorscheme("tokyonight-moon")
复制成功

4.keybindings.lua

代码块
JavaScript
自动换行
复制代码
-- leader键 空格
vim.g.mapleader = " "
vim.g.maplocalleader = " "

-- 省略其他基础配置
local opt = { noremap = true, silent = true }
local map = vim.api.nvim_set_keymap

-- 键位说明
-- Ctrl简写为C-,Shift简写为S-,Alt简写为A-

-- 1.配置NvimTree文件目录的打开或关闭
-- alt + m 打开或关闭文件浏览器Nvim-Tree  注:在macos下,进入nvim后,直接同时按fn + option(alt) + m,即可完成文件目录树的打开和切换。
map("n", "<A-m>", ":NvimTreeToggle<CR>", opt) 
复制成功