Open5
Neovim の設定やプラグイン作りに使える Tips
備忘録 of (普段は使わないから忘れる or 知られてないけど便利なもの)
Neovim 全体のサイズ
local width = vim.o.columns
local height = vim.o.lines
vim.api.nvim_get_hl
の fg
などの数値を RGB に変換する
---@type integer
local fg = vim.api.nvim_get_hl(0, { name = "Normal" }).fg
print(("#%06x"):format(fg))
C と同じ埋め込み方
lua/my_module.lua
local M = {
foo = require("my_module.foo")
}
return M
こうすると、require("my_module")
とすると、require("my_module.foo")
も実行される。
これを、require("my_module").foo
が実行されるまで require("my_module.foo")
を実行しない方法
lua/my_module.lua
local M = setmetatable({
foo = nil, ---@module 'my_module.foo'
}, {
__index = function(t, k)
t[k] = require("my_module." .. k)
return t[k]
end,
})
return M
ダミーを入れておくことで、language server での補完も効くようになる
nvim --headless
で実行されているかどうか
vim.tbl_contains(vim.v.argv, "--headless")
-- or
#vim.api.nvim_list_uis() == 0