Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/abzcoding/lvim

🧑‍🚀 Bloated LunarVim 🚀
https://github.com/abzcoding/lvim

lua lunarvim lvim neovim nvim vim

Last synced: about 2 months ago
JSON representation

🧑‍🚀 Bloated LunarVim 🚀

Awesome Lists containing this project

README

        

# Bloated LunarVim

Do not use as is, use it as a source of inspiration.

I've customized my ZSH/Tmux/[Wezterm](https://github.com/abzcoding/wezterm) too much, so it might not work properly 😅

Screenshot 2024-06-04 at 18 26 59


Table of Contents
(🔎 Click to expand/collapse)

- [Theme](#theme)
- [Customization](#customization)
- [Install](#install)
- [Collaborative Editing](#collaborative-editing)
- [Java](#java)
- [Recommended Fonts](#recommended-fonts)
- [Screenshot](#screenshot)
- [Structure](#structure)
- [Plugins Included](#plugins-included)
- [Optional Plugins](#optional-plugins)
- [Custom Key-mappings](#custom-key-mappings)
- [Editor UI](#ui)
- [Motions](#motion)
- [LSP](#lsp)
- [Plugin: AsyncTasks](#plugin-asynctasks)
- [Plugin: Gitsigns](#plugin-gitsigns)
- [Plugin: LazyGit](#plugin-lazygit)
- [Plugin: Telescope](#plugin-telescope)
- [Plugin: Harpoon](#plugin-harpoon)
- [Plugin: Neogen](#plugin-neogen)
- [Plugin: Persistence](#plugin-persistence)
- [Plugin: Bufferline](#plugin-bufferline)
- [Plugin: Trouble](#plugin-trouble)
- [Plugin: Ultest](#plugin-ultest)
- [Plugin: Neotest](#plugin-neotest)
- [Plugin: Spectre](#plugin-spectre)
- [Plugin: SSR](#plugin-ssr)
- [Plugin: Copilot](#plugin-copilot)
- [Plugin: Lsp_Lines](#plugin-lsp_lines)
- [Plugin: Overseer](#plugin-overseer)
- [Plugin: NeoTree](#plugin-neotree)
- [Plugin: Mind](#plugin-mind)
- [Troubleshooting](#troubleshooting)

## Theme

Themes are automatically changed based on time of the day:

| Theme | Time of the day |
| ---------------------------------------------------- | :------------------------: |
| [rose-pine](https://github.com/rose-pine/neovim) | [1am, 9am) |
| [tokyonight](https://github.com/folke/tokyonight) | [9am, 5pm) |
| [catppuccin](https://github.com/catppuccin/nvim) | [5pm, 9pm) |
| [kanagawa](https://github.com/rebelot/kanagawa.nvim) | [9pm, 11:59pm), [0am, 1am] |

You can change this in [plugins.lua](./lua/user/plugins.lua) and [theme.lua](./lua/user/theme.lua)
or just disable it and install your own theme

```lua
lvim.colorscheme = "catppuccin"
lvim.builtin.time_based_themes = false
lvim.plugins = {
{
"catppuccin/nvim",
as = "catppuccin",
config = function()
require("catppuccin").setup()
end,
}
}
```

## Customization


Customization
(🔎 Click to expand/collapse)

- I'm using `neovim 0.11 head`
- Do not use as is, too much bloated! Also do not use on a potato PC!!
- i have a auto command to disable syntax,etc when you open files larger than `1MB`
- if you don't want to use `harpoon`, disable it
- `lvim.builtin.harpoon = { active = false }`
- if you want to try out GitHub copilot, change the following
- `lvim.builtin.sell_your_soul_to_devil = { active = true, prada = false }`
- in case you want to use `cmp-copilot`, set `prada=true` after copilot installation
- I use a custom `lualine` disable it if you don't like it
- `lvim.builtin.fancy_statusline = { active = false }`
- You can use the `diffview` plugin instead of normal `gitsigns diff`
- `lvim.builtin.fancy_diff = { active = true }`
- if you want to use debugging, change the following line to true, also [install codelldb]():
- `lvim.builtin.dap.active = true`
- sometimes instead of saving you jump trough jumplist 😢 just disable nvim-lastplace
- `lvim.builtin.lastplace = { active = false }`
- sometimes `cmp-tabnine` doesn't play nice, you can disable it :)
- `lvim.builtin.tabnine = { active = false }`
- if you don't need testing, just disable it (use `ultest` or `neotest`)
- `lvim.builtin.test_runner = { active = false, runner = "ultest" }`
- if you don't want [cheat.sh](http://cheat.sh) integration, disable it
- `lvim.builtin.cheat = { active = false }`
- if you don't want the SQL integration, disable it
- `lvim.builtin.sql_integration = { active = false }`
- if you don't like smooth scrolling, disable it
- `lvim.builtin.smooth_scroll= ""`
- if you want an obvious focused window, and you don't get seizures from it
- `lvim.builtin.nonumber_unfocus = true`
- choose between [hop](https://github.com/phaazon/hop.nvim) and [leap](https://github.com/ggandor/leap.nvim) or [flash](https://github.com/folke/flash.nvim) as your favorite motion provider
- `lvim.builtin.motion_provider = "hop"`
- choose between [filename->incline](https://github.com/b0o/incline.nvim) and [treesitter->winbar](https://github.com/fgheng/winbar.nvim) or [navic](https://github.com/SmiteshP/nvim-navic) as your winbar provider
- `lvim.builtin.winbar_provider = "treesitter"`
- if you don't need CSV support, disable it
- `lvim.builtin.csv_support = false`
- if you want to use the cool make and run system, enable it
- `lvim.builtin.task_runner = "async_tasks"`
- you can choose between `nvimtree` and `neo-tree` as your file tree viewer
- `lvim.builtin.tree_provider = "neo-tree"`
- you can use noice.nvim if you want
- `lvim.builtin.noice = { active = true }`
- If you wanna see the issues, change `default_diagnostic_config.virtual_text` inside `builtin.lua`
- I'm using `skim` for `latex` stuff, change it to `zathura` if you are on `linux`

## Install

Prerequisites (🔎 Click to expand/collapse)

### Prerequisites

- [Neovim](neovim-install) >= v0.10.0

```shell
brew install neovim --nightly
```

- [Rust](rust-install)
and telescope stuff:
- [ripgrep](ripgrep)
- [fd](fd)

```shell
curl --proto '=https' --tlsv1.2 -sSf "https://sh.rustup.rs" | sh
cargo install ripgrep fd-find
```

- [NodeJS](nodejs-install) >= v16.13.0
most language servers need this

```shell
brew install node
```

```shell
bash <(curl -s "https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh")
mv ~/.config/lvim ~/.config/lvim_backup
git clone https://github.com/abzcoding/lvim.git ~/.config/lvim
lvim +LvimUpdate +LvimCacheReset +q
lvim # run :Lazy sync
```

### Java


Java
(🔎 Click to expand/collapse)

Please run the following to have a better debugging and testing support for java

```shell
mkdir -p ~/workspace
git clone [email protected]:microsoft/java-debug.git ~/.config/lvim/.java-debug
cd ~/.config/lvim/.java-debug/
./mvnw clean install
git clone [email protected]:microsoft/vscode-java-test.git ~/.config/lvim/.vscode-java-test
cd ~/.config/lvim/.vscode-java-test
npm install
npm run build-plugin
```

### Recommended Fonts

- [FiraCode]: My preferred nerd font
- Any of the [Nerd Fonts]

On macOS with Homebrew, choose one of the [Nerd Fonts],
for example, here are some popular fonts:

```shell
brew tap homebrew/cask-fonts
brew search nerd-font
brew install --cask font-fira-code-nerd-font
brew install --cask font-victor-mono-nerd-font
brew install --cask font-iosevka-nerd-font-mono
brew install --cask font-hack-nerd-font
```

Other Stuff (🔎 Click to expand/collapse)

## Language-Server Protocol (LSP)

To leverage LSP auto-completions and other functionalities, after you open a
file in Neovim, run `:MasonInstall ` to use
[mason](mason) installation feature.
Use `Tab` to list available servers.

## Upgrade

```shell
cd ~/.config/lvim
git pull
lvim # run :Lazy sync
```

### Recommended Linters

You can use [mason](mason) to install these:

```shell
cargo install selene # if you want to use selene instead of luacheck
brew install hadolint # if you want to lint dockerfiles
pip install vim-vint # for vim linting
# install llvm and clang_format for clang stuff
npm install -g @fsouza/prettierd # if you want to use prettierd
pip install yapf flake8 black # for python stuff
# if you want to use the markdown thingy
brew install vale markdownlint-cli
cp -r ~/.config/lvim/.vale ~/.config/vale
# fix the address inside .vale.ini
cp ~/.config/lvim/vale_config.ini ~/.vale.ini
# if you want the latex stuff
# brew install --cask mactex-no-gui # for mac
# or install zathura and chktex on linux
```

In case you want a better tex support in mac, check
[this](tex-support) out

if you want the custom `gostructhelper`, first get the pkg:

```shell
cd /tmp
git clone https://github.com/vanhtuan0409/gostructhelper.git
cd gostructhelper/cmds/gostructhelper
go build -o /usr/local/bin/gostructhelper && chmod 0755 /usr/local/bin/gostructhelper
```

---

## Collaborative Editing


Collaborative Editing
(🔎 Click to expand/collapse)

The default is to serve localhost only, on port 8080. For a more advanced (remote server) overview see [Deploy a server](https://github.com/jbyuki/instant.nvim/wiki/Deploy-a-server)

### Server side

- `:InstantStartServer [host] [port]` : Start the server using
- `:InstantStartSingle [host] [port]` : This only shares the current buffer.
- `:InstantStartSession [host] [port]` :This shares all opened (and newly opened) buffers with the other clients

### Client side

- `let g:instant_username="sth"` : Set your preferred username.
- `:InstantJoinSingle [host] [port]` : Use this command if another client already initiated a single share.
- `:InstantJoinSession [host] [port]` : Use this command if another client already initiated a session share

## Screenshot

Screenshots (🔎 Click to expand/collapse)

Screenshot 2024-06-04 at 18 30 21

### BufferLine

Screenshot 2024-06-04 at 18 30 53

#### StatusLine

Screenshot 2024-06-04 at 18 32 55

#### Dashboard

Screenshot 2024-06-04 at 18 33 48

Screenshot 2024-06-04 at 18 33 56

#### lsp_signature

lsp_signature_2
lsp_signature

#### Tabnine

tabnine

#### Lang Server

_completion_
Screen Shot 2021-10-18 at 5 43 22 PM

_diagnostics using `gl`_
Screen_Shot_2021-07-31_at_7 54 52_PM

_code_actions using `ga`_
Screen Shot 2021-10-18 at 6 25 58 PM

_`code_lens` and `inlay_hints` when supported by lang server_
Screen Shot 2021-10-18 at 6 26 47 PM

_references in `qf`_
Screen Shot 2021-10-18 at 6 31 03 PM

_treesitter backed folding_
Screen Shot 2021-10-18 at 6 05 29 PM

_peek using `gp`_

Screen Shot 2021-10-18 at 6 33 06 PM

_rename using `lr`_

Screen Shot 2021-11-04 at 3 54 15 PM

#### Builtin Terminal

Screen Shot 2021-10-18 at 6 07 13 PM

#### Test

Screen Shot 2021-10-18 at 6 13 22 PM

#### ETC

_k8s help_

Screen Shot 2021-10-18 at 6 23 21 PM

_lazy git integration_

Screen Shot 2021-10-18 at 6 27 45 PM

_zen mode_

Screen Shot 2021-10-18 at 6 30 00 PM

_Cheat.sh integration_

use `?`
Screen Shot 2021-10-18 at 6 02 31 PM

Screen Shot 2021-10-18 at 6 01 34 PM

_Symbols Outline_

Screen Shot 2021-10-18 at 6 03 57 PM

##

## Plugins Included

Plugins (🔎 Click to expand/collapse)

- [Doom One Theme](https://github.com/NTBBloodbath/doom-one.nvim)
- [Rose Pine Theme](https://github.com/rose-pine/neovim)
- [LSP Signature](https://github.com/ray-x/lsp_signature.nvim/)
- [Todo Comments](https://github.com/folke/todo-comments.nvim)
- [symbols-outline.nvim](https://github.com/simrat39/symbols-outline.nvim)
- [Twilight](https://github.com/folke/twilight.nvim)
- [nvim-bqf](https://github.com/kevinhwang91/nvim-bqf)
- [vim match-up](https://github.com/andymass/vim-matchup)
- [Zen Mode](https://github.com/folke/zen-mode.nvim)
- [rustaceanvim](https://github.com/mrcjkb/rustaceanvim)
- [nvim-spectre](https://github.com/nvim-pack/nvim-spectre)
- [colorizer.lua](https://github.com/norcalli/nvim-colorizer.lua)
- [Neogen](https://github.com/danymat/neogen)
- [Vimtex](https://github.com/lervag/vimtex)
- [typescript.nvim](https://github.com/jose-elias-alvarez/typescript.nvim)
- [flutter-tools.nvim](https://github.com/akinsho/flutter-tools.nvim)
- [NeoClip](https://github.com/AckslD/nvim-neoclip.lua)
- [fidget](https://github.com/j-hui/fidget.nvim)
- [clangd_extensions.nvim](https://github.com/p00f/clangd_extensions.nvim)
- [crates.nvim](https://github.com/Saecki/crates.nvim)
- [refactoring.nvim](https://github.com/ThePrimeagen/refactoring.nvim)
- [ssr.nvim](https://github.com/cshuaimin/ssr.nvim)

### Optional Plugins

- [Trouble](https://github.com/folke/trouble.nvim)
- [Hop](https://github.com/phaazon/hop.nvim)
- [Flash](https://github.com/folke/flash.nvim)
- [Leap](https://github.com/ggandor/leap.nvim)
- [remember.nvim](https://github.com/vladdoster/remember.nvim)
- [Tabnine](https://github.com/tzachar/cmp-tabnine)
- [Persistence](https://github.com/olimorris/persisted.nvim)
- [Presence](https://github.com/andweeb/presence.nvim)
- [Orgmode.nvim](https://github.com/kristijanhusak/orgmode.nvim)
- [nvim-dap-ui](https://github.com/rcarriga/nvim-dap-ui)
- [LuaDev](https://github.com/folke/lua-dev.nvim)
- [vim-test](https://github.com/vim-test/vim-test)
- [vim-ultest](https://github.com/rcarriga/vim-ultest)
- [nvim-cheat](https://github.com/RishabhRD/nvim-cheat.sh)
- [vim-dadbod](https://github.com/tpope/vim-dadbod)
- [vim-dadbod-completion](https://github.com/kristijanhusak/vim-dadbod-completion)
- [vim-dadbod-ui](https://github.com/kristijanhusak/vim-dadbod-ui)
- [Neoscroll](https://github.com/karb94/neoscroll.nvim)
- [Cinnamon scroll](https://github.com/declancm/cinnamon.nvim)
- [Copilot](https://github.com/github/copilot.vim)
- [Harpoon](https://github.com/ThePrimeagen/harpoon)
- [vim-log-highlighting](https://github.com/mtdl9/vim-log-highlighting)
- [nvim-cursorline](https://github.com/yamatsum/nvim-cursorline)
- [nvim-hlslens](https://github.com/kevinhwang91/nvim-hlslens)
- [csv.vim](https://github.com/chrisbra/csv.vim)
- [sidebar.nvim](https://github.com/sidebar-nvim/sidebar.nvim)
- [asynctasks.vim](https://github.com/skywind3000/asynctasks.vim)
- [asyncrun.vim](https://github.com/skywind3000/asyncrun.vim)
- [nvim-metals](https://github.com/scalameta/nvim-metals)
- [instant.nvim](https://github.com/jbyuki/instant.nvim)
- [SnipRun](https://github.com/michaelb/sniprun)
- [Vista](https://github.com/liuchengxu/vista.vim)
- [dressing.nvim](https://github.com/stevearc/dressing.nvim)
- [incline.nvim](https://github.com/b0o/incline.nvim)
- [winbar.nvim](https://github.com/fgheng/winbar.nvim)
- [lsp_lines.nvim](https://git.sr.ht/~whynothugo/lsp_lines.nvim)
- [neotest](https://github.com/nvim-neotest/neotest)
- [legendary.nvim](https://github.com/mrjones2014/legendary.nvim)
- [overseer.nvim](https://github.com/stevearc/overseer.nvim)
- [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim/blob/v2.x)
- [noice.nvim](https://github.com/folke/noice.nvim)
- [nvim-dap-vscode-js](https://github.com/mxsdev/nvim-dap-vscode-js)
- [inc-rename](https://github.com/smjonas/inc-rename.nvim)
- [hlargs.nvim](https://github.com/m-demare/hlargs.nvim)
- [cmake-tools.nvim](https://github.com/Civitasv/cmake-tools.nvim)
- [mind.nvim](https://github.com/Selyss/mind.nvim)
- [wtf.nvim](https://github.com/piersolenski/wtf.nvim)
- [backseat.nvim](https://github.com/james1236/backseat.nvim)
- [outline.nvim](https://github.com/hedyhli/outline.nvim)
- [typescript-tools.nvim](https://github.com/pmizio/typescript-tools.nvim)
- [markdown.nvim](https://github.com/abzcoding/markdown.nvim/tree/feature/fancy)
- [helpview.nvim](https://github.com/OXY2DEV/helpview.nvim)

## Structure

Structure (🔎 Click to expand/collapse)

- [after/](./after) - Stuff that happens after
- [ftplugin/](./after/ftplugin) - Language specific settings
- [syntax/](./after/syntax) - Custom syntax for languages
- [ftdetect/](./ftdetect) - Let neovim identify custom filetypes
- [ftplugin/](./ftplugin) - Language specific custom settings
- [lsp-settings](./lsp-settings) - Custom lang server settings
- [lua/](./lua) - Lua plugin configurations
- [telescope/](./lua/telescope/_extensions) - Telescope extensions
- [user/](./lua/user) - User specific settings
- [null_ls](./lua/user/null_ls) - list of configured linters/formatters
- [autocommands.lua](./lua/user/autocommands.lua) - user defined autocommands
- [builtin.lua](./lua/user/builtin.lua) - change internal lunarvim settings
- [keybindings.lua](./lua/user/keybindings.lua) - user defined keybindings
- [plugins.lua](./lua/user/plugins.lua) - list of installed plugins
- [lsp_kind.lua](./lua/user/lsp_kind.lua) - all the icons and lsp ui goodies are here
- [theme.lua](./lua/user/theme.lua) - customized themes
- [config.lua](./config.lua) - Main customization point for settings
- [snippets/](./snippets) - Personal code snippets

## Custom Key-mappings

Note that,

- **Leader** key set as Space


Key-mappings
(🔎 Click to expand/collapse)

Modes: 𝐍=normal 𝐕=visual 𝐒=select 𝐈=insert 𝐂=command

### UI

| Key | Mode | Action | Plugin or Mapping |
| ------------------------------------------------------------- | :--: | ------------------- | --------------------------------------------------------- |
| Space+e | 𝐍 | Open file tree | NvimTree |
| Space+o | 𝐍 | Open symbols | Symbols-outline |
| Space+f | 𝐍 | Open file finder | Telescope |
| Space+h | 𝐍 | Remove highlight | `nohlsearch<` |
| Space+/ | 𝐍 | Toggle comment | Comment.nvim |
| Space+? | 𝐍 | Open cheats | cheat.sh |
| Space+I | 𝐍 | Inlay Hints | `require('vim.lsp._inlay_hint').refresh()` |
| Space+' | 𝐍 | Open marks | which-key marks |
| Space+z | 𝐍 | Zen mode | zen-mode.nvim |
| Space+P | 𝐍 | Projects | project.nvim |
| Ctrl+\ | 𝐈 𝐍 | Open terminal | toggleterm.nvim |
| Alt+0 | 𝐈 𝐍 | Vertical terminal | toggleterm.nvim |
| Ctrl+s | 𝐈 | Show signature help | `vim.lsp.buf.signature_help()` |
| Alt+s | 𝐈 | Snippet selection | Telescope luasnip extension |
| Space+C or Ctrl+P | 𝐍 | Command Palette | legendary.nvim |

### Motion

| Key | Mode | Action | Plugin or Mapping |
| --------------------------- | :--: | ----------------------- | ------------------------------------------------------------------------------------------------- |
| f | 𝐍 | find next character | HopChar1CurrentLineAC or leap_f or Flash.CharActions |
| F | 𝐍 | find previous character | HopChar1CurrentLineBC or leap_F or Flash.CharActions |
| s | 𝐍 | find character | HopChar2MW or leap_s or require("flash").jump() |
| S | 𝐍 | find word | HopWordMW or leap_S or 2char jump |
| Alt+a | 𝐈 | select all | ggVG |
| Alt+a | 𝐍 | increment number | C-A |
| Alt+x | 𝐍 | decrement number | C-X |

### LSP

| Key | Mode | Action |
| ---------------------------------------------------------------------------------------- | :--: | ----------------------------------- |
| Tab / Shift-Tab | 𝐈 | Navigate completion-menu |
| Enter | 𝐈 | Select completion or expand snippet |
| Upor Down | 𝐈 | Movement in completion pop-up |
| ]+d | 𝐍 | Next diagnostic |
| [+d | 𝐍 | Previous diagnostic |
| Space+l+j or Space+l+k | 𝐍 | Next/previous LSP diagnostic |
| Space+l+r | 𝐍 | replace current word in project |
| Ctrl+e | 𝐈 | Close pop-up |
| Tab / Shift-Tab | 𝐈 𝐒 | Navigate snippet placeholders |
| Space+l | 𝐍 | keybindings for lsp |
| g+a | 𝐍 | code actions |
| g+A | 𝐍 | codelens actions |
| g+d | 𝐍 | goto definition |
| g+t | 𝐍 | goto type definition |
| g+D | 𝐍 | goto declaration |
| g+I | 𝐍 | goto implementation |
| g+p | 𝐍 | peek implementation |
| g+r | 𝐍 | goto references |
| g+s | 𝐍 | show signature help |

### Plugin: AsyncTasks

| Key | Mode | Action |
| ------------------------------------------ | :--: | ------------- |
| Space+m+f | 𝐍 | Build File |
| Space+m+p | 𝐍 | Build Project |
| Space+m+e | 𝐍 | Edit Tasks |
| Space+m+l | 𝐍 | List Tasks |
| Space+r+f | 𝐍 | Run File |
| Space+r+p | 𝐍 | Run Project |

### Plugin: Gitsigns

| Key | Mode | Action |
| ---------------------------------------------------------------------------------------- | :--: | ---------------------- |
| Space+g+j or Space+g+k | 𝐍 | Next/previous Git hunk |
| Space+g+p | 𝐍 | Preview hunk |
| Space+g+l | 𝐍 | Blame line |
| Space+g+s | 𝐍 𝐕 | Stage hunk |
| Space+g+u | 𝐍 | Undo stage hunk |
| Space+g+d | 𝐍 | Diff to head |
| Space+g+h | 𝐍 | Buffer git history |
| Space+g+R | 𝐍 𝐕 | Reset hunk |

### Plugin: LazyGit

| Key | Mode | Action |
| ------------------------------------------ | :--: | ---------------- |
| Space+g+g | 𝐍 | Open lazy git UI |

### Plugin: Telescope

| Key | Mode | Action |
| ------------------------------------------ | :--: | -------------------------- |
| Space+f | 𝐍 | File search |
| Space+P | 𝐍 | Project search |
| Space+s+s | 𝐍 | Grep search |
| Space+s+f | 𝐍 | Telescope find_files |
| Space+s+e | 𝐍 | Telescope file_browser |
| Space+F+l | 𝐍 | Reopen last search |
| Space+b+f | 𝐍 | Buffers |
| Space+s+c | 𝐍 | Colorschemes |
| Space+s+C | 𝐍 | Command history |
| Space+s+h | 𝐍 | Find help |
| Space+s+k | 𝐍 | Keymap search |
| Space+s+M | 𝐍 | Man Pages search |
| Space+s+r | 𝐍 | Register search |
| Space+s+t | 𝐕 | Grep string under cursor |
| Space+s+t | 𝐍 | Grep raw |
| Space+F+b | 𝐍 | Builtin search |
| Space+F+f | 𝐍 | Current buffer search |
| Space+F+g | 𝐍 | Git files search |
| Space+F+i | 𝐍 | Installed plugins |
| Space+F+p | 𝐍 | Project search |
| Space+F+i | 𝐍 | Installed plugins |
| **in _Telescope_ window** | | |
| CR | 𝐈 𝐍 | Multi/Single Open |
| Ctrl+c | 𝐈 𝐍 | Exit telescope |
| Ctrl+v | 𝐈 𝐍 | Open in a vertical split |
| Ctrl+s | 𝐈 𝐍 | Open in a split |
| Ctrl+t | 𝐈 𝐍 | Open in a tab |
| Ctrl+b | 𝐈 | Go back in Command Palette |
| Tab | 𝐈 𝐍 | Toggle Selection + Next |
| Shift+Tab | 𝐈 𝐍 | Toggle Selection + Prev |

### Plugin: Harpoon

| Key | Mode | Action |
| --------------------------------- | :--: | -------------------------------- |
| Space+Space | 𝐍 | Show harpoon shortlist |
| Space+a | 𝐍 | Add file to shortlist |
| Space+1 | 𝐍 | Jump to first file on shortlist |
| Space+2 | 𝐍 | Jump to second file on shortlist |
| Space+3 | 𝐍 | Jump to third file on shortlist |
| Space+4 | 𝐍 | Jump to forth file on shortlist |

### Plugin: Neogen

| Key | Mode | Action |
| ------------------------------------------ | :--: | ---------------------- |
| Space+n+c | 𝐍 | Class documentation |
| Space+n+f | 𝐍 | Function documentation |
| Space+n+t | 𝐍 | Type documentation |
| Space+n+F | 𝐍 | File documentation |

### Plugin: Persistence

| Key | Mode | Action |
| ------------------------------------------ | :--: | -------------- |
| Space+q+d | 𝐍 | Delete Session |
| Space+q+l | 𝐍 | Load Session |
| Space+q+s | 𝐍 | Save Session |

### Plugin: Bufferline

| Key | Mode | Action |
| ------------------------------------------ | :--: | -------------------- |
| Shift+x | 𝐍 | Close buffer |
| Space+b+f | 𝐍 | Find buffer |
| Space+b+b | 𝐍 | Toggle buffer groups |
| Space+b+p | 𝐍 | Toggle pin |
| Space+b+s | 𝐍 | Pick buffer |
| Space+b+1 | 𝐍 | Goto buffer 1 |
| Space+b+h | 𝐍 | Close all to left |
| Space+b+l | 𝐍 | Close all to right |
| Space+b+D | 𝐍 | Sort by directory |
| Space+b+L | 𝐍 | Sort by language |

### Plugin: Trouble

| Key | Mode | Action |
| ------------------------------------------ | :--: | --------------------- |
| Space+T+d | 𝐍 | Diagnostics |
| Space+T+f | 𝐍 | Definitions |
| Space+T+r | 𝐍 | References |
| Space+T+t | 𝐍 | Todo |
| Space+T+w | 𝐍 | Workspace diagnostics |

### Plugin: Ultest

| Key | Mode | Action |
| ------------------------------------------ | :--: | ----------------------- |
| Space+t+f | 𝐍 | Run all tests in a file |
| Space+t+n | 𝐍 | Only run nearest test |
| Space+t+s | 𝐍 | Open test summary |

### Plugin: Neotest

| Key | Mode | Action |
| ------------------------------------------ | :--: | ---------------------------- |
| Space+t+a | 𝐍 | Run all tests |
| Space+t+f | 𝐍 | Run tests in a file |
| Space+t+r | 𝐍 | Only run nearest test |
| Space+t+s | 𝐍 | Open test summary |
| Space+t+o | 𝐍 | Open test output |
| Space+t+w | 𝐍 | Watch test |
| Space+t+x | 𝐍 | Stop test |
| Space+t+n | 𝐍 | Jump to next failed test |
| Space+t+p | 𝐍 | Jump to previous failed test |
| Space+t+c | 𝐍 | Cancel test |

### Plugin: Spectre

| Key | Mode | Action |
| ------------------------------------------ | :--: | ------------------------------ |
| Space+R+p | 𝐍 | Replace word in project |
| Space+R+w | 𝐍 | Replace visually selected word |
| Space+R+f | 𝐍 | Replace word in current buffer |

### Plugin: SSR

| Key | Mode | Action |
| ------------------------------------------ | :--: | ----------------------------------------------- |
| Space+r | 𝐕 | Structural replace confirm using `` |
| Space+R+s | 𝐍 | Structural replace confirm using `` |

### Plugin: Copilot

| Key | Mode | Action |
| ---------------------------- | :--: | ----------------------------------- |
| Ctrl+h | 𝐈 | `copilot#Accept("")` |
| Ctrl+e | 𝐈 | Close cmp menu |
| Ctrl+] | 𝐈 | `(copilot-dismiss)` |
| Alt+] | 𝐈 | `(copilot-next)` |
| Alt+[ | 𝐈 | `(copilot-previous)` |
| Alt+\ | 𝐈 | `"vertical Copilot panel"` |

### Plugin: Lsp_Lines

| Key | Mode | Action |
| ----------------------------- | :--: | ------------------------ |
| Space+v | 𝐍 | Toggle showing lsp_lines |

### Plugin: Overseer

| Key | Mode | Action |
| ------------------------------------------ | :--: | ---------------- |
| Space+r+f | 𝐍 | Run |
| Space+r+p | 𝐍 | Run with cmd |
| Space+r+t | 𝐍 | Toggle output |
| Space+m+n | 𝐍 | New Task |
| Space+m+l | 𝐍 | Load Task Bundle |
| Space+m+s | 𝐍 | Save Task Bundle |
| Space+m+q | 𝐍 | Quick Action |
| Space+m+f | 𝐍 | Task Action |

### Plugin: NeoTree

| Key | Mode | Action |
| ----------------------------- | :--: | -------------------------------- |
| Space+e | 𝐍 | Toggle tree |
| > and < | 𝐍 | Next and prev source inside tree |
| Enter | 𝐍 | Open |
| s | 𝐍 | Open in vertical split |
| S | 𝐍 | Open in horizontal spit |
| H | 𝐍 | Toggle hidden files |
| a | 𝐍 | Add files/dirs |
| A | 𝐍 | Add new dir |
| r | 𝐍 | Rename |
| h | 𝐍 | Go Updir |
| l | 𝐍 | Open |
| P | 𝐍 | Toggle preview |
| / | 𝐍 | Fuzzy finder |

### Plugin: Mind

| Key | Mode | Action |
| ------------------------------------------ | :--: | ----------------- |
| Space+M+M | 𝐍 | Open Main Tree |
| Space+M+m | 𝐍 | Open Local Tree |
| Enter | 𝐍 | open data |
| Tab | 𝐍 | toggle node |
| Shift+Tab | 𝐍 | toggle parent |
| / | 𝐍 | select path |
| $ | 𝐍 | change icons menu |
| c | 𝐍 | create new node |
| q | 𝐍 | quit |

[firacode]: https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/FiraCode/Retina
[nerd fonts]: https://www.nerdfonts.com
[neovim install]: https://github.com/neovim/neovim/wiki/Installing-Neovim
[rust install]: https://www.rust-lang.org/tools/install
[ripgrep]: https://github.com/BurntSushi/ripgrep
[fd]: https://github.com/sharkdp/fd
[nodejs install]: https://nodejs.org/en/download/package-manager/#macos
[mason]: https://github.com/williamboman/mason.nvim
[tex-support]: https://gist.github.com/peterhurford/75957ba9335e755013b87254ec85fab1

## Troubleshooting

1. Check your neovim version. Are you on the newest nightly version?
2. make sure to run `:Lazy sync`
3. Reset your Lunarvim cache using `:LvimCacheReset`