Skip to content

NeovimのLua-guideを読んでメモ

困ったら何を見ればいい?

一般的なLua自体の書き方も、Neovim特有のLuaの書き方もNeovimのドキュメントをみよう

Neovimの3つの「API」

NeovimのAPIは、以下の3つのAPIがある

  • Vim API
  • Nvim API
  • Lua API

Vim API

Vim由来のAPI。Luaからはvim.cmd()vim.fn()を使ってアクセスできる。

Nvim API

Neovim由来のAPI。Luaからはvim.apiで始まる関数を使ってアクセスできる。

Lua API

Lua由来のAPI。Luaの標準ライブラリを使ってアクセスできる。 これについて知りたかったらlua-stdlibのドキュメントを見ればいい。

例えば…

colorscheme habamaxはカラースキームを変更するVimのコマンド。

これはNeovimではVim APIとして提供されている。だから、

vim.cmd("colorscheme habamax")

または

vim.cmd([[colorscheme habamax]])

と書くことで、NeovimのLuaスクリプトからカラースキームを変更できる。

また、VimScriptの関数もLuaから呼び出せる。vim.fn()を使えばいい。

print(vim.fn.printf("Hello, from %s", "world"))

使用できるVimScriptの関数は:h builtin-functionsまたは:h functions-listを実行して確認できる。

変数

T.B.D

オプション

以下のVimScriptは

set smarttab
set nosmarttab

Luaではこう書ける。

vim.opt.smarttab = true
vim.opt.smarttab = false

ただし、:lua print(vim.opt.smarttab)を実行してもtrue/falseは得られない。 Luaのテーブルのアドレス値だけが得られる。

true/falseを得るには以下のようにする必要がある。

print(vim.opt.smarttab:get())

ただし、もっと簡単な方法がある。

vim.o.smarttab = true
print(vim.o.smarttab)
--- true

困ったら:h lua-optionsを見よう。

キーマッピング

T.B.D

Autocommands

T.B.D

ユーザーコマンド

T.B.D