やりたいこと
新しくプラグインを追加したので、そのプラグインの機能を簡単に呼び出すキーマッピングを設定したい。
例えば、 telescope.nvim でファイル名検索をするコマンドとして <leader>ffを設定したいとする。
書式
-- ~/.config/nvim/lua/plugins/spec1.lua
return {
'プラグイン名',
keys = {
{ キー, 実行コマンド or 関数, モード?, オプション? }
}
} - キー:実際に呼び出し時に使うキーを書く
- 実行コマンド:↑を押したときに実行されるコマンドや関数を書く
- モード:Normalモードや、insertモードなど、どのモードで発動するかを決める(省略時はNormalモード)
- オプション:そのコマンドの説明などを記載する
詳細は
:h lazy.nvim でヘルプを開き、 LazyKeySpecを検索すると良い。
設定例①:単純にコマンドを実行する(telescope.nvim)
lazy.nvimの公式ドキュメント通りに導入すると、 <leader> =スペースキーとなるため、
以下の設定ファイルはこのようなコマンド設定をしたことになる。
-
スペースキーff::Telescope find_files hidden=trueを呼び出す(ファイル名検索) -
スペースキーfg::Telescope live_grepを呼び出す(全検索)
return {
'nvim-telescope/telescope.nvim',
tag = 'v0.2.0',
dependencies = { 'nvim-lua/plenary.nvim' },
keys = {
-- 検索
{ "<leader>ff", "<cmd>Telescope find_files hidden=true<cr>", desc = "Find files" },
{ "<leader>fg", "<cmd>Telescope live_grep<cr>", desc = "Live grep" }
}
}
参考:📄【Neovim】プラグインマネージャーlazy.nvimをインストールして設定する
<leader>について知りたい場合: 📄【Vim】leaderとは何か?
設定例②:lua関数を実行する(telescope.nvim)
function() ~ endが関数定義なので、 gd と打つとこの関数が実行される。
keys = {
{ "gd", function() require("telescope.builtin").lsp_definitions() end, desc = "LSP Definition" },
}