Neovim配置

119 阅读2分钟

本文是我自己边学习nvim边记录下来的,会时不时的更新,如有错误之处请大家指正。

一、标准路径

Nvim将配置、数据和日志存储在标准位置。强烈建议插件也遵循这种模式。使用stdpath()获取路径。例子:

:echo stdpath("config")

“基本”(根)目录符合XDG基本目录规范。specifications.freedesktop.org/basedir-spe… $XDG_CONFIG_HOME, $XDG_DATA_HOME, $XDG_RUNTIME_DIR, and $XDG_STATE_HOME如果已定义,则使用环境变量,否则使用默认值(如下所列)使用。

CONFIG DIRECTORY (DEFAULT)

$XDG_CONFIG_HOMENvim: stdpath("config")
Unix:~/.config~/.config/nvim
Windows:~/AppData/Local~/AppData/Local/nvim

DATA DIRECTORY (DEFAULT)

$XDG_CONFIG_HOMENvim: stdpath("data")
Unix:~/.local/share~/.local/share/nvim
Windows:~/AppData/Local~/AppData/Local/nvim-data

RUN DIRECTORY (DEFAULT)

$XDG_CONFIG_HOMENvim: stdpath("run")
Unix:/tmp/nvim.user/xxx/tmp/nvim.user/xxx
Windows:$TMP/nvim.user/xxx$TMP/nvim.user/xxx

STATE DIRECTORY (DEFAULT)

$XDG_CONFIG_HOMENvim: stdpath("state")
Unix:~/.local/state~/.local/state/nvim
Windows:~/AppData/Local~/AppData/Local/nvim-data

注意:在整个用户手册中,这些默认值用作占位符,例如: "~/.config" 被理解为 "$XDG_CONFIG_HOME or ~/.config".

二、我自己的配置

自己边学习边完善中,详细配置见my-nvim-config

2.1、配置入口文件

Neovim配置文件入口与 VIM 不太一样,不是.vimrc。而是保存在用户Home目录中的~/.config/nvim/init.lua文件, 也可以是用VIM脚本写的init.vim文件。

Linux中默认路径是~/.config/nvim/init.lua; Windows中默认路径是~/AppData/Local/nvim/init.lua;

Neovim未来的趋势应该会是全Lua化了。由于Lua是一种很轻巧的脚本语言,体积小,启动速度快,也更通用,最重要的是语法简单,非常容易学习,所以选择使用init.lua文件,这里称之为入口文件。

init.lua中写入如下内容:

-- 基础配置
require('basic')

require函数在Lua中用于加载一个模块,而这些模块通常位于runtimepath中的 lua/ 目录下,也就是我们的~/.config/nvim/lua/目录。

上边的代码,就是加载~/.config/nvim/lua/basic.lua文件(注意:require 里没有.lua扩展名)。当然也可以创建~/.config/nvim/lua/basic/目录,在目录下边创建init.lua文件也是可以成功加载的。

2.2、基础配置 basic.lua

创建对应的~/.config/nvim/lua/basic.lua文件,作为基础配置文件,添加内容如下:

-- utf-8
-- utf-8
vim.g.encoding = "UTF-8"
vim.o.fileencoding = 'UTF-8'
-- hjkl 移动时光标周围保留8行
vim.o.scrolloff = 8
vim.o.sidescrolloff = 8
-- 使用相对行号
vim.wo.number = true
vim.wo.relativenumber = true
-- 高亮所在行
-- vim.wo.cursorline = true
-- 缩进2个空格等于一个tab
vim.o.tabstop = 2
vim.bo.tabstop = 2
vim.o.softtabstop = 2
vim.o.shiftround = true
-- >> <<时移动长度
vim.o.shiftwidth = 2
vim.bo.shiftwidth = 2
-- 空格替代tab
vim.o.expandtab = true
vim.bo.expandtab = true