Neovimの設定ファイル。init.vimの代わりに使える。
例・ドキュメント
- nvim-lua-guide-ja/README.ja.md at master · willelz/nvim-lua-guide-ja
- https://github.com/ayamir/nvimdots
- モジュール分割等が参考になる
- これはやりすぎな気がするが
場所
~/.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 foolocal 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 nonumberif has("foo")
vim.fn.has('win32') then
...
else
...
endautocmd, 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