Вернуться назад

Telescope

Обязательная зависимость: 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