Win10的VIM配置
我的VIM配置
简介
电脑重装了个win10,想在wi10上用vim,所以配置了个NeoVim,下面是配置好的效果图:
安装步骤
1. 下载安装vim
由于vim有点老旧,所以安装NeoVim,下载后直接双击Neovim Qt运行,下载链接:https://github.com/neovim/neovim/releases/tag/stable
2. 健康检查
安装完成后运行一下健康检查:checkhealth
,检查环境是否齐全
3. 环境配置
按照官方文档配置(https://github.com/neovim/neovim/wiki/Installing-Neovim)
配置$VIMRUNTIME环境,这个运行环境是安装目录下的./NeoVim\share\nvim\runtime
PATH: 包括neovim的bin和一些后面会用到的软件变量,如图:
:setpell
: 打开软件直接输入,如果执行失败的话,去官网上下载文件,手动放到目录中去
init.lua:核心配置文件,在neovim中,使用lua来配置,目录:C:\Users\your-user-name\AppData\Local\nvim
上面配置好之后记得再次运行健康检查:checkhealth
4. 配置目录
lua支持模块化配置,我们创建如下图所示的文件(plugins目录下的都是一些插件配置)
5. 说明一下这几个文件的用途
- init.lua 核心配置文件,用来加载其他的配置文件
- options.lua 基础配置,包括一些行号、tab、换行等配置
- lazy.lua 插件管理器lazy.nvim的配置
- keymaps.lua 快捷键设置
- plugins目录下的都是一些插件配置
6. 插件管理器安装
这里选择Lazy.nvim作为插件管理器(主要是有个ui,看起来舒服),直接按照官方文档安装:(https://github.com/folke/lazy.nvim)
这里需要安装Nerd Font(一款字体,不安装的话插件中有些符号无法显示)
配置文件如下:
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)
-- Use a protected call so we don't error out on first use
local status_ok, lazy = pcall(require, 'lazy')
if not status_ok then return end
-- Start setup
lazy.setup({
spec = {
-- 需要的插件都写在这里
}
})
编写完成后,在init.lua中导入require('core.lazy')
安装完成后,输入:Lazy
,如图:
7. 插件安装示例
基本上都是在github上找官方文档一步一步安装的,这里就以安装nvim-tree
为案例演示一下插件安装的方法(https://github.com/nvim-tree/nvim-tree.lua)
- 编写lazy.lua
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)
-- Use a protected call so we don't error out on first use
local status_ok, lazy = pcall(require, 'lazy')
if not status_ok then return end
-- Start setup
lazy.setup({
spec = {
{
"nvim-tree/nvim-tree.lua",
version = "*",
dependencies = {"nvim-tree/nvim-web-devicons"},
config = function() require("nvim-tree").setup {} end
}
}
})
- 运行
:Lazy
安装 - 编写配置文件
nvim-tree.lua
,这些配置都在官方文档里
local status,ntree = pcall(require,'nvim-tree')
if not status then
return
end
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
vim.opt.termguicolors = true
ntree.setup({
sort_by = "case_sensitive",
renderer = {
group_empty = true,
},
filters = {
dotfiles = true,
},
})
- init.lua中导入
-- 省略lua文件夹
require('plugins.nvim-tree')
- 输入
:so
重新加载配置文件
8. 我装的一些插件
由于我本人只是使用vim查看代码,编写文档,所以并没有安装Lsp(虽然我装了Mason.....)
navarasu/onedark.nvim:主题插件,超爱onedark配色
nvim-tree/nvim-tree.lua:左侧目录树
windwp/nvim-autopairs:自动完成括号、单引号、双引号啥的
nvim-telescope/telescope.nvim: 全局搜索
phaazon/hop.nvim:快速跳转
szw/vim-maximizer:vim窗口最大化
christoomey/vim-tmux-navigator:tmux导航
numToStr/Comment.nvim:注释
tpope/vim-surround:成对符号修改,可以很方便输入成对的符号,例如将一串字符中间的几个字符用括号包裹起来
williamboman/mason.nvim: mason,LSP安装管理器
illiamboman/mason-lspconfig.nvim: LSP
neovim/nvim-lspconfig : LSP
folke/trouble.nvim :显示warning
nvim-treesitter/nvim-treesitter 代码高亮
KaraMCC/vim-termtoggle 打开终端
iamcco/markdown-preview.nvim markdown预览
folke/which-key.nvim:神器,显示vim快捷键
akinsho/bufferline.nvim: 美化,把 buffer 显示成类似 VSCode 中 Tab 页