telescope
The Ultimate Fuzzy Finder for Neovim
Telescope.nvim is the fuzzy finder plugin that will supercharge your Neovim workflow. Whether you’re navigating files, searching through buffers, or quickly pulling up your command history, Telescope makes it easy, fast, and efficient.
Key Features of Telescope
- 
Fuzzy Searching Telescope’s search engine is intelligent—you don’t need to type exact matches! Just type a few letters and Telescope will fuzzily match them. ✨ It’s like magic. ✨ 
- 
Extensible to the Max Create custom pickers, search types, and even add your own extensions. Telescope is like a Lego set—build whatever your heart desires! 
- 
Neovim Integration Seamlessly integrates with Neovim’s core features: buffers, files, commands, and more! Never leave the comfort of your editor. 
- 
Preview Everything Want to see inside a file before selecting it? Telescope lets you preview the contents of search results before making a choice. 
- 
Performance First Speed is key! Telescope is written in Lua, ensuring that even with large projects, it remains fast and responsive. 
- 
Fully Customizable UI Telescope allows you to tweak the interface to your liking. Want a minimalist look or something with more pizzazz? You got it! 
- 
Keybindings Made Easy Create custom keybindings for your favorite Telescope commands. Say goodbye to mouse fatigue and embrace the keyboard power! 
Installing Telescope with Lazy.nvim
If you’re using Lazy.nvim as your plugin manager, the installation process is just as easy. Add the following to your init.lua:
require('lazy').setup({
  {
    'nvim-telescope/telescope.nvim',
    dependencies = { 'nvim-lua/plenary.nvim' }
  }
})After that, run :Lazy sync to install the plugin.
Once installed, you’re ready to go!
Quickly search for files in your project directory. Telescope will do its fuzzy magic.
:Telescope find_filesSearch for any string across all your files with live feedback.
:Telescope live_grepSearch through Neovim’s help documentation.
:Telescope help_tagsExtending Telescope
Telescope is highly extensible—you can add your own custom pickers, filters, and even third-party extensions.
Example: Custom Picker for Markdown Files
local actions = require('telescope.actions')
require('telescope').setup{
  defaults = {
    mappings = {
      i = {
        ["<C-x>"] = actions.select_horizontal,
      },
    },
  },
}
local function search_markdown()
  require('telescope.builtin').find_files({
    prompt_title = "Markdown Files",
    cwd = vim.fn.getcwd(),
    find_command = {'find', '.', '-type', 'f', '-name', '*.md'}
  })
endThis Lua function creates a custom picker to find all .md files in your current project.
Example: Using an Extension
Telescope is like a supercharged battery that works with other extensions. Let’s use the fzf extension to make searching even faster.
require('telescope').load_extension('fzf')Keybindings & Customization
Telescope gives you full control over keybindings and UI. Here’s how you can bind commands to the keys you like best. Keyboard power, unleashed! 🚀
Example:
vim.api.nvim_set_keymap('n', '<Leader>ff', ':Telescope find_files<CR>', { noremap = true })
vim.api.nvim_set_keymap('n', '<Leader>fg', ':Telescope live_grep<CR>', { noremap = true })
vim.api.nvim_set_keymap('n', '<Leader>fb', ':Telescope buffers<CR>', { noremap = true })
vim.api.nvim_set_keymap('n', '<Leader>fh', ':Telescope help_tags<CR>', { noremap = true })These bindings assign Leader + ff to find files, Leader + fg to search for text, and more!
Extensions: Add More Power 💥
Telescope can be extended with plugins to unlock even more cool features.
- 
Telescope-fzf-native Make your searches ultra-fast with the fzf extension! 
use {
  'nvim-telescope/telescope-fzf-native.nvim',
  run = 'make'
}- 
Telescope-emoji Insert emojis straight into your code with this extension. 
- 
Telescope-project Switch between projects like a pro. Telescope-project helps you jump to a different project’s files in seconds. 
- 
Sorting and Filtering Results Want to sort files by the most recently modified? Or perhaps by file type? Telescope lets you do that: 
require('telescope.builtin').find_files({
  sort_lastused = true,  -- Sort by last used
})