本文是我自己边学习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_HOME | Nvim: stdpath("config") | |
---|---|---|
Unix: | ~/.config | ~/.config/nvim |
Windows: | ~/AppData/Local | ~/AppData/Local/nvim |
DATA DIRECTORY (DEFAULT)
$XDG_CONFIG_HOME | Nvim: stdpath("data") | |
---|---|---|
Unix: | ~/.local/share | ~/.local/share/nvim |
Windows: | ~/AppData/Local | ~/AppData/Local/nvim-data |
RUN DIRECTORY (DEFAULT)
$XDG_CONFIG_HOME | Nvim: 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_HOME | Nvim: 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