Neovim config for the lazy
Find a file
abeldekat 8b4e6ff70d
feat(snippets): an extra for mini.snippets (#5274)
## Description

Mini.snippets, a plugin to manage and expand snippets, is currently in
[beta](https://github.com/echasnovski/mini.nvim/issues/1428).

I think the plugin is a very interesting alternative to `luasnip`.

The following `lazydoc` will be added:

```lua
if lazyvim_docs then
  -- Set to `false` to prevent "non-lsp snippets"" from appearing inside completion windows
  -- Motivation: Less clutter in completion windows and a more direct usage of snippits
  vim.g.lazyvim_mini_snippets_in_completion = true

  -- Using default mini.snippets, completion suggestions might appear directly after inserting a snippet
  -- This extra prevents that from happening.
  -- Motivation: A better display of the current snippet.
  -- Also, those completions do not appear when using luasnip or native snippets
  --
  -- Set to `false` to enable completion suggestions directly after inserting a snippet
  vim.g.lazyvim_mini_snippets_override_expand_insert = true

  -- NOTE: Please also read:
  -- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-snippets.md#expand
  -- :h MiniSnippets-session

  -- Example override for your own config:
  --[[
  return {
    {
      "echasnovski/mini.snippets",
      opts = function(_, opts)
        -- By default, for opts.snippets, the extra for mini.snippets only adds gen_loader.from_lang()
        -- This provides a sensible quickstart, integrating with friendly-snippets
        -- and your own language-specific snippets
        --
        -- In order to change opts.snippets, replace the entire table inside your own opts

        local snippets, config_path = require("mini.snippets"), vim.fn.stdpath("config")

        opts.snippets = { -- override opts.snippets provided by extra...
          -- Load custom file with global snippets first (order matters)
          snippets.gen_loader.from_file(config_path .. "/snippets/global.json"),

          -- Load snippets based on current language by reading files from
          -- "snippets/" subdirectories from 'runtimepath' directories.
          snippets.gen_loader.from_lang(), -- this is the default in the extra...
        }
      end,
    },
  }
--]]
end

```

It's possible to use the code from this PR directly in your own
configuration:

1. Copy the code to lua/extras/coding/mini_snippets.lua in your config
folder
2. Restart nvim and enable the "user" extra for `mini.snippets`
3. Restart nvim
 
## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

---------

Co-authored-by: abeldekat <abel@nomail.com>
2025-01-23 12:03:36 +01:00
.github chore(main): release 14.8.0 (#5409) 2025-01-20 13:50:28 +01:00
doc chore(build): auto-generate docs 2025-01-20 10:56:42 +00:00
lua/lazyvim feat(snippets): an extra for mini.snippets (#5274) 2025-01-23 12:03:36 +01:00
queries/lua feat(lua): added LazyVim as a treesitter builtin 2024-05-15 15:31:08 +02:00
scripts chore(update): update repository (#4009) 2024-07-13 10:07:07 +02:00
tests feat(core)!: move a bunch of LazyVim features to snacks.nvim (#4706) 2024-11-07 15:54:47 +01:00
.editorconfig chore(update): update repository (#4054) 2024-07-15 17:09:19 +02:00
.gitignore ci: update 2024-07-06 23:45:22 +02:00
.neoconf.json build: neoconf sumneko_lua => lua_ls 2023-03-04 10:41:52 +01:00
CHANGELOG.md chore(main): release 14.8.0 (#5409) 2025-01-20 13:50:28 +01:00
CONTRIBUTING.md docs: added experience to CONTRIBUTING 2024-06-10 23:26:07 +02:00
init.lua feat(init)!: disable init.lua and show a message on how to use LazyVim 2023-01-07 11:44:40 +01:00
LICENSE docs: added LICENSE 2023-01-01 09:48:09 +01:00
NEWS.md fix(NEWS): typo 2024-12-13 17:21:37 +01:00
README-CN.md docs(README): add fzf dependencies to docker (#5020) 2024-12-13 07:23:41 +01:00
README-DE.md docs(README): add fzf dependencies to docker (#5020) 2024-12-13 07:23:41 +01:00
README-ES.md docs(README): translate README.md to Spanish (#5054) 2024-12-14 07:52:58 +01:00
README-IT.md docs(README): translate README.md to Italian (#5060) 2024-12-14 22:33:27 +01:00
README-JP.md docs(README): add fzf dependencies to docker (#5020) 2024-12-13 07:23:41 +01:00
README-KO.md docs(README): add fzf dependencies to docker (#5020) 2024-12-13 07:23:41 +01:00
README-PT.md docs(README): add fzf dependencies to docker (#5020) 2024-12-13 07:23:41 +01:00
README.md docs(README): add fzf dependencies to docker (#5020) 2024-12-13 07:23:41 +01:00
selene.toml ci: update 2024-07-05 15:31:26 +02:00
stylua.toml build(format): sort requires 2023-10-09 11:34:23 +02:00
vim.toml ci: update 2024-07-05 15:31:26 +02:00


Install · Configure · Docs

LazyVim is a Neovim setup powered by 💤 lazy.nvim to make it easy to customize and extend your config. Rather than having to choose between starting from scratch or using a pre-made distro, LazyVim offers the best of both worlds - the flexibility to tweak your config as needed, along with the convenience of a pre-configured setup.

image

image

Features

  • 🔥 Transform your Neovim into a full-fledged IDE
  • 💤 Easily customize and extend your config with lazy.nvim
  • 🚀 Blazingly fast
  • 🧹 Sane default settings for options, autocmds, and keymaps
  • 📦 Comes with a wealth of plugins pre-configured and ready to use

Requirements

  • Neovim >= 0.9.0 (needs to be built with LuaJIT)
  • Git >= 2.19.0 (for partial clones support)
  • a Nerd Font (optional)
  • a C compiler for nvim-treesitter. See here

🚀 Getting Started

You can find a starter template for LazyVim here

Try it with Docker
docker run -w /root -it --rm alpine:edge sh -uelic '
  apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
  git clone https://github.com/LazyVim/starter ~/.config/nvim
  cd ~/.config/nvim
  nvim
'
Install the LazyVim Starter
  • Make a backup of your current Neovim files:

    mv ~/.config/nvim ~/.config/nvim.bak
    mv ~/.local/share/nvim ~/.local/share/nvim.bak
    
  • Clone the starter

    git clone https://github.com/LazyVim/starter ~/.config/nvim
    
  • Remove the .git folder, so you can add it to your own repo later

    rm -rf ~/.config/nvim/.git
    
  • Start Neovim!

    nvim
    

    Refer to the comments in the files on how to customize LazyVim.


There's a great video created by @elijahmanor with a walkthrough to get started.

Watch the video

@dusty-phillips wrote a comprehensive book called LazyVim for Ambitious Developers available for free online.

📂 File Structure

The files under config will be automatically loaded at the appropriate time, so you don't need to require those files manually. LazyVim comes with a set of default config files that will be loaded before your own. See here

You can add your custom plugin specs under lua/plugins/. All files there will be automatically loaded by lazy.nvim

~/.config/nvim
├── lua
│   ├── config
│   │   ├── autocmds.lua
│   │   ├── keymaps.lua
│   │   ├── lazy.lua
│   │   └── options.lua
│   └── plugins
│       ├── spec1.lua
│       ├── **
│       └── spec2.lua
└── init.lua

⚙️ Configuration

Refer to the docs