lazyvimの遅延読み込み (lazyvim load lazy plugin)
過去に作成した記事
前回lazyvimでプラグインを導入する方法について書きました。必要な場合は前回、前々回の記事を参考ください。
lazyvimでは、neovim起動時にプラグインを呼び出さずに後から必要な時にプラグインを呼び出す遅延読み込みが搭載されており、event,cmd,ft,keys のいづれかを持つ場合に呼び出されます。
これらの項目を中心にプラグインの設定方法について説明しようと思います。
開始
linuxでxxdをインストールした後にnvim/lua/plugins/hex.lua
に書き込んでみます。
windowsの場合にもxxd for windows
を作っている方がいるようですね。
以降記事の中で
nvim/
と記載する場合以下のフォルダー以下を指します。
windows:C:\Users\user\AppData\Local\nvim\
linux:/home/user/.config/nvim
nvim/lua/plugins/hex.lua
にファイルを作成して書き込んでみよう。
一度nvimを閉じて再度開いたときに反映されます。
return {
'RaafatTurki/hex.nvim',
ft= {"hex", "efi"},
opts = { },
event = {"BufRead", },
cmd = {
"HexDump",
"HexAssemble",
"HexToggle",
}
}
neovimでバイナリエディタを使いたい場合 RaafatTurki/hex.nvim
を使用することができます。
ft
開いたファイルが指定したファイルタイプの拡張子になっている場合にプラグインを読み込みます。
例だと拡張子hexまたは、efiの場合にプラグインを読み込みます。
cmd
プラグインの既存のコマンドでプラグインをロードするために使用します。RaafatTurki/hex.nvim
には、3つのコマンドがあります。
HexDump
,HexAssemble
,HexToggle
lazyvimのコマンドモードで呼び出すにはcmdを使用します。
lazyvimで:HexDump
を実行するとバイナリエディタが開かれることが理解できます。
event
プラグインを読み込むタイミングを決定します。
ftでフォルダーの形式を選択しただけでは、プラグインの読み込みが行われないので、読み込みのタイミングをhex
,efi
のファイルを開いたときに呼び出されるようにします。
他のタイミングで使用するには以下ドキュメントを参考にしてください。
LazyVim特定のものとしてVeryLazy
最初からロードしておくがあるようですね
keys
キーが入力されたタイミングで遅延読み込みを行います。
{ "key", "global command", "description(説明)"}を記載します。
例としては以下のようになります。
自分がよく使う機能の一つとして lazyDocker
を入れて見たいと思います.
lazyDockerはcuiのアプリケーションなので pacman -Sy lazydocker
等を実行してインストールします。
nvim/lua/plugins/lazydocker.lua
ファイルを作ります。
spaceキーを押してkeymapを開くと、LazyDockerが追加されたことを確認できます。
spaceキーを押してdを押すとなにLazyDockerが開くと思います。
<leader>
はデフォルト状態でspacekeyと設定されています。
<leader>d
に何か別のコマンドがついている場合、<leader>dps
など別のキーを割り当ててください
nvim/lua/plugins/lazydocker.lua
return {
"crnvl96/lazydocker.nvim",
opts = {}, -- automatically calls `require("lazydocker").setup()`
dependencies = {
"MunifTanjim/nui.nvim",
},
cmd = {
"LazyDocker",
},
keys = {
{ "<leader>d", "<cmd>LazyDocker<CR>", desc = "LazyDocker" },
},
}
opts/ config
プラグインが用意している設定を行いたい場合にopts
もしくはconfig
を使用します。
config = true
とするとopts={}
と同様の設定内容になります。
最終的なファイル構造
$ tree /home/user/.config/
├── nvim
│ ├── lua
│ │ ├── config
│ │ │ ├── autocmds.lua
│ │ │ ├── keymaps.lua
│ │ │ ├── lazy.lua
│ │ │ └── options.lua
│ │ └── plugins
│ │ │ ├── hex.lua # newfile
│ │ │ ├── lazydocker.lua # newfile
│ │ └── example.lua
│ └── init.lua
終わり
皆さんの環境に合わせて使用いただけると幸いです。
参考文献
Discussion