Lua Module
なんと、これに関しては既に日本語に訳されたドキュメントが存在します。
登っていきましょうとか言っておいてなんですが、まずは掘り下げちゃいます。どんまい😆
Luaモジュールは、runtimepath内のlua/フォルダにあります (ほとんどの場合、*nixでは~/.config/nvim/lua、Windowsでは~/AppData/Local/nvim/luaを意味します)。
このフォルダにあるファイルをLuaモジュールとしてrequire()できます。
runtimepath
一個ずつ見ていきますが、runtimepath
はNeovim
で以下のコマンドを使用することで確認できます。
いきなりちょっと複雑でしたね😅
頑張ってコマンドを打つと、出力の中に "~/.config/nvim"
があるはずです。
1
(上の例はunix
なので"/home/utm-user/.config/nvim"
)
ここにlua
ディレクトリを作成することで、上に示されている「ほとんどの場合」に合致できます。
あと、runtimepath
絡みでもう一つポイントがあります。
runtimepath内にある特定のフォルダからLuaファイルを自動的に読み込めます。 現在、次のフォルダがサポートされています。
- colors/
- compiler/
- ftplugin/
- ftdetect/
- indent/
- plugin/
- syntax/
逆に言うと、lua
ディレクトリは自動では読み込まないぞ❗ということですね。
lua
ディレクトリに置いたファイルは~/.config/nvim/init.lua
からrequire()
で読み込んでいきましょう。
require()
require()
はWezTerm
でも使いましたね。
WezTerm
の時はwezterm.lua
と同じディレクトリにあるファイルを読み込むことにしか使用していませんでしたが、
もうちょっと高機能です。
次のLuaコードはmyluamodule.luaをロードします。:
require('myluamodule')
.lua拡張子がないことに注意してください。
同様に、other_modules/anothermodule.lua のロードは次のように行います。:
require('other_modules.anothermodule')
-- or
require('other_modules/anothermodule')
パスの区切りはドット.またはスラッシュ/で示されます。
フォルダにinit.luaが含まれている場合、ファイル名を指定せずにロードできます。
最後の一文は、
require('example')
とした場合にexample/init.lua
をロードできるよ❗ってことですね。これはNeovim
に限ったものではなく、Lua
の仕様みたいです。
全く関係ないところでやってみてもこの説明で通用するものになりました。