页面配置
nvim安装与配置
为什么要使用nvim
因为nvim相较于其他IDE,它有以下优点:
- 打开快速
- 高度自定义
- 对linux友好 我一般使用jetbrains全家桶,但是这个作为一个普通的脚本编辑器太过于臃肿了。所以以此为契机折腾一下
nvim(vscode?它作为一个json编辑器挺好的)
安装
以下所有安装基于mint(debian)系统 首先去到nvim官网下载安装包,在这里我选择的是Linux,下载完成之后,解压到对应目录的文件夹,解压命令:
tar -zxvf nvim-linux64.tar.gz
然后将nvim加入到系统变量里面:
cd /path/to/install/nvim/bin
ln -s $(pwd)/nvim /usr/bin/nvim
操作完成之后,运行nvim -v出现:
NVIM v0.9.5
Build type: Release
LuaJIT 2.1.1692716794
system vimrc file: "$VIM/sysinit.vim"
fall-back for $VIM: "/__w/neovim/neovim/build/nvim.AppDir/usr/share/nvim"
Run :checkhealth for more info
即为成功。
插件管理安装
只需要执行以下两个命令:
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
和
git clone --depth 1 https://github.com/wbthomason/packer.nvim\
~/.local/share/nvim/site/pack/packer/start/packer.nvim
然后在nvim里面运行:
:PackerStatus
如果显示窗口为packer.nvim的话即为成功
基础配置
首先到对应的使用用户目录下创建一个文件夹:
mkdir -p ~/.config/nvim
mkdir -p ~/.config/nvim/lua
创建完成之后,在~/.config/nvim/lua创建三个文件,分别是:
touch keybindings.lua #基础按键绑定文件
touch plugins.lua #插件管理文件
touch setting.lua #环境配置文件
plugins.lua
内容如下:
return require('packer').startup(function(use)
-- packer
use 'wbthomason/packer.nvim'
end)
setting.lua
内容如下:
vim.o.number = true -- 显示行号
vim.o.relativenumber = true -- 显示相对行号
vim.o.tabstop = 4 -- 制表符宽度
vim.o.shiftwidth = 4 -- 缩进宽度
vim.o.expandtab = true -- 用空格代替制表符
vim.o.smartindent = true -- 开启智能缩进
vim.o.wrap = false -- 关闭自动换行
vim.o.cursorline = true -- 高亮当前行
vim.cmd 'syntax enable' -- 开启语法高亮
接下来是~/.config/nvim/init.lua
init.lua
local nvim_luaroot = vim.fn.stdpath('config').."/"
package.path = nvim_luaroot.."?.lua;"..package.path
-- 以上这两行是为了防止当nvim在别的目录下工作时检测不出来引用的配置
-- 以下是引用配置文件
require("lua.setting")
require("lua.plugins")
require("lua.keybindings")
--这个是向vim添加packer拓展
vim.cmd [[packadd packer.nvim]]
keybindings.lua文件暂时不需要配置 最后运行一下nvim没有出现报错就可以使用了。
coc插件安装与配置
nvim安装完成之后是没有办法直接使用的,需要添加lsp插件才能开始使用。以下操作目录以~/.config/nvim为起点。
什么是lsp
LSP 指的是“语言服务器协议”(Language Server Protocol)。这是一种在编辑器(如 Neovim)和专门用于提供编程语言特定功能(如自动完成、代码跳转、悬停提示等)的语言服务器之间通讯的标准协议。LSP 由 Microsoft 开发,旨在使代码编辑器能够与语言服务器进行通信,从而提供更丰富的编程语言支持。(gpt的回答)
通俗的讲它提供想IDE里面的代码提示,代码补全,语法分析等等一系列编程工作基础功能。
安装
首先他需要安装nodejs这个可以查看这篇文章:nodejs linux安装 现在假定已安装完成了,接下来编辑lua/plugins.lua
vim lua/plugins.lua
在函数内部添加此代码:
--coc
use {'neoclide/coc.nvim', branch = 'release'}
保存退出之后,进入nvim,执行以下命令:
:PackerInstall
执行时会出现一个窗口显示安装进度。当安装完成之后,退出重启nvim。
插件安装
现在可根据所需语言安装对应的lsp插件,这里以javascript为例子: 首先进入nvim,然后执行:
:CocInstall coc-tsserver
安装完成之后,在工作目录创建配置文件:
vim coc-settings.json
添加以下配置:
{
"suggest.noselect": false,
"coc.preferences.formatOnSaveFiletypes": [
"javascript",
"typescript",
"json",
"javascriptreact",
"typescriptreact",
"css",
"markdown",
"graphql"
],
}
保存之后就可以使用nvim创建或者打开javascript文件进行编辑,看看是否出现代码提示即可。有一点要注意,语法提示是需要另外的插件。