Neovimの設定ファイル。init.vimの代わりに使える。

例・ドキュメント

場所

~/.config/nvim/に配置する。init.vimは削除するかリネームしておく。

モジュール

NeoVim固有の話

~/.config/nvim/luaフォルダを作り、その下にluaファイルを配置し、requireで読み込むことができる。

-- init.lua
 
-- ~/.config/nvim/lua/foo.lua または ~/.config/nvim/lua/foo/init.lua を読み込む
local foo = require("foo")

foo.lua内からさらに他のファイルを読み込むこともできる。

詳細は:he lua-require:he luaを参照

一般的なLuaの話

モジュールを書く側のベストプラクティス

モジュールに相当する値を返す 何らかの副作用のある処理を行うことが目的の場合、別に何も返さなくても良い

例)

local foo = {}
foo.greet = function()
	print("Hello")
 end
 return foo
local function greet()
	print("Hello")
end
return {
	greet = greet,
}

モジュールを使う側

local foo = require "foo"
foo.greet()

デバッグ

print()を使うとコマンド欄に文字を出力できる

VimScriptとの対応

文字列をVimScriptとして実行

vim.cmd('syntax enable')

複数行の場合は

vim.cmd([[
hoge
fuga
piyo
]])

set foo

vim.opt.mouse = 'a'  -- set mouse=a
vim.opt.title = true  -- set title
vim.opt.number = false  -- set nonumber

if has("foo")

vim.fn.has('win32') then
	...
else
	...
end

autocmd, augroup

vim.api.nvim_create_autocmd("QuickFixCmdPost", {
	group = vim.api.nvim_create_augroup('auto_open_quickfix_window', {clear=true}),
	pattern = '*',
	command = 'cwindow'
})

キーマップ

vim.api.nvim_set_keymap('i', 'jj', '<ESC>', {silent=true})

"上"のページ: Neovim