Обязательная зависимость: nvim-lua/plenary.nvim
Опционально, но ОЧЕНЬ желательно для скорости: nvim-telescope/telescope-fzf-native.nvim
Теперь установим Telescope:
-- ~/.config/nvim/lua/plugins/telescope.lua
return {
{
'nvim-telescope/telescope.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
{
'nvim-telescope/telescope-fzf-native.nvim',
build = 'make',
},
},
config = function()
local telescope = require('telescope')
telescope.setup({
defaults = {
mappings = {
i = {
[''] = require('telescope.actions').close,
},
},
},
})
telescope.load_extension('fzf')
end,
}
}
И подключаем в init.lua:
-- ~/.config/nvim/init.lua
-- ...
require("lazy").setup({
spec = {
{ import = "plugins.treesitter" },
{ import = "plugins.lualine" },
{ import = "plugins.neotree" },
{ import = "plugins.cmp" },
-- ...
-- Здесь подключаем Telescope:
{ import = "plugins.telescope" },
},
install = { colorscheme = { "habamax" } }
})
-- ...
Чтобы проверить, работает Telescope, или нет, введём команду: :Telescope find_files.
Полезные команды:
:Telescope find_files – это CLI-обёртка над тем же самым: require('telescope.builtin').find_files().
Назначим горячие клавиши, добавив следующий код в ~/.config/nvim/init.lua:
-- ~/.config/nvim/init.lua
local builtin = require('telescope.builtin')
vim.keymap.set('n', 'ff', builtin.find_files)
vim.keymap.set('n', 'fg', builtin.live_grep)
vim.keymap.set('n', 'fb', builtin.buffers)
vim.keymap.set('n', 'fh', builtin.help_tags)
Теперь <Space>ff – файлы, <Space>fg – поиск по проекту и т.д.
А лучше всего перенести горячие клавиши в ~/.config/nvim/lua/plugins/telescope.lua. Вот изменённый вариант файла:
-- ~/.config/nvim/lua/plugins/telescope.lua
return {
{
'nvim-telescope/telescope.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
{
'nvim-telescope/telescope-fzf-native.nvim',
build = 'make',
},
},
config = function()
local telescope = require('telescope')
-- Здесь добавляем переменную builtin:
local builtin = require('telescope.builtin')
telescope.setup({
defaults = {
mappings = {
i = {
[''] = require('telescope.actions').close,
},
},
},
})
telescope.load_extension('fzf')
-- А здесь добавляем горячие клавиши:
vim.keymap.set('n', 'ff', builtin.find_files, { desc = 'Find files' })
vim.keymap.set('n', 'fg', builtin.live_grep, { desc = 'Live grep' })
vim.keymap.set('n', 'fb', builtin.buffers, { desc = 'Buffers' })
vim.keymap.set('n', 'fh', builtin.help_tags, { desc = 'Help tags' })
end,
}
}
В предыдущем примере у горячих клавиш появился параметр desc. Это описание маппинга. Этот параметр не обязателен, но будет полезен для плагина which-key.
lala