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

https://github.com/sk1t0n/lazyvim-config

Scripts for installing LazyVim and generating lua files
https://github.com/sk1t0n/lazyvim-config

config configuration lazyvim lazyvim-config nvim nvim-config nvim-configuration

Last synced: 3 months ago
JSON representation

Scripts for installing LazyVim and generating lua files

Awesome Lists containing this project

README

          

# lazyvim_config

Scripts for installing LazyVim and generating Lua files. Users can select the programming languages ​​for which Lua files will be generated. This allows you to install and configure only plugins for the languages ​​you need. Supported languages: Rust, Go.

**Plugins that can install and setup**:

1. General: [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig), [conform.nvim](https://github.com/stevearc/conform.nvim), [neotest](https://github.com/nvim-neotest/neotest), [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter), [nvim-lint](https://github.com/mfussenegger/nvim-lint), [nvim-dap](https://github.com/mfussenegger/nvim-dap), [nvim-dap-ui](https://github.com/rcarriga/nvim-dap-ui), [actions-preview.nvim](https://github.com/aznhe21/actions-preview.nvim), [refactoring.nvim](https://github.com/ThePrimeagen/refactoring.nvim), [treesj](https://github.com/Wansmer/treesj), [garbage-day.nvim](https://github.com/Zeioth/garbage-day.nvim), [smartcolumn.nvim](https://github.com/m4xshen/smartcolumn.nvim), [focus.nvim](https://github.com/nvim-focus/focus.nvim), [better-escape.nvim](https://github.com/max397574/better-escape.nvim), [zen-mode.nvim](https://github.com/folke/zen-mode.nvim), [timerly](https://github.com/nvzone/timerly)
2. AI: [windsurf.nvim](https://github.com/Exafunction/windsurf.nvim) or [copilot.vim](https://github.com/github/copilot.vim) + [CopilotChat.nvim](https://github.com/CopilotC-Nvim/CopilotChat.nvim)
3. Rust: [rustaceanvim](https://github.com/mrcjkb/rustaceanvim), [crates.nvim](https://github.com/saecki/crates.nvim)
4. Go: [neotest-golang](https://github.com/fredrikaverpil/neotest-golang), [nvim-dap-go](https://github.com/leoluz/nvim-dap-go)

Table of Contents

- [Requirements](#requirements)
- [Install LazyVim and generate lua files](#install-lazyvim-and-generate-lua-files)
- [Delete configuration](#delete-configuration)
- [Regenerate lua files if needed](#regenerate-lua-files-if-needed)
- [Install dependencies for selected languages](#install-dependencies-for-selected-languages)
- [Rust dependencies](#rust-dependencies)
- [Go dependencies](#go-dependencies)
- [Keymaps](#keymaps)
- [General](#general)
- [LSP](#lsp)
- [refactoring.nvim](#refactoringnvim)
- [treesj](#treesj)
- [bufferline.nvim](#bufferlinenvim)
- [neotest](#neotest)
- [nvim-dap](#nvim-dap)
- [nvim-dap-ui](#nvim-dap-ui)
- [timerly](#timerly)
- [windsurf.nvim](#windsurfnvim)
- [copilot.vim, CopilotChat.nvim](#copilotvim-copilotchatnvim)
- [AI](#ai)
- [Windsurf](#windsurf)
- [Copilot](#copilot)

## Requirements

- [Neovim](https://github.com/neovim/neovim/blob/master/INSTALL.md)
- [Nerd Fonts](https://www.nerdfonts.com/font-downloads) - for to support icons in fonts (example configuration file for [WezTerm](https://github.com/sk1t0n/dotfiles/blob/master/home/anton/.wezterm.lua#L13))

## Install LazyVim and generate lua files

**Linux**:

```bash
make install
# or
make
```

## Delete configuration

**Linux**:

```bash
make delete
# or delete configuration along with backups
make delete DELETE_WITH_BACKUPS=true
```

## Regenerate lua files if needed

**Linux**:

```bash
make generate
```

## Install dependencies for selected languages

### Rust dependencies

You need to install: rust-analyzer, rustfmt, cargo-nextest.

**Linux**:

```bash
rustup component add rust-analyzer
rustup component add rustfmt
curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
cargo binstall cargo-nextest --secure
```

### Go dependencies

You need to install: gopls, golangci-lint, golangci-lint-langserver, goimports, golines, delve.

```bash
# install from source (alternative - install binary)
go install golang.org/x/tools/gopls@latest
go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest
go install github.com/nametake/golangci-lint-langserver@latest
go install golang.org/x/tools/cmd/goimports@latest
go install github.com/segmentio/golines@latest
go install github.com/go-delve/delve/cmd/dlv@latest
```

## Keymaps

[LazyVim Keymaps](https://www.lazyvim.org/keymaps)

### General

| № | Action | Default Key | Custom Key | Description | Mode |
|:-:|---------|:------------:|:------------:|----------------------|:-----------:|
| 1 | Replace | `` | `` | Move Down | **n, i, v** |
| 2 | Replace | `` | `` | Move Up | **n, i, v** |
| 3 | Add | | `` | Toggle comment line | **n, v** |
| 4 | Replace | `` | `` | Terminal (Root Dir) | **n** |
| 5 | Replace | `` | `` | Hide Terminal | **t** |
| 6 | Add | | `` | Escape terminal mode | **t** |
| 7 | Replace | `-` | `\|` | Split Window Below | **n** |
| 8 | Replace | `\|` | `\` | Split Window Right | **n** |

### LSP

| Key | Description | Mode |
|:------------:|---------------------|:------------:|
| K | Hover | **n** |
| gK | Signature Help | **n** |
| gD | Goto Declaration | **n** |
| gd | Goto Definition | **n** |
| gi | Goto Implementation | **n** |
| `ca` | Code Action | **n**, **v** |
| `cd` | Line Diagnostics | **n** |
| `cr` | Rename | **n** |

### refactoring.nvim

| Key | Description | Mode |
|:------------:|-----------------|:------------:|
| `cR` | Select Refactor | **n**, **v** |

### treesj

| Key | Description | Mode |
|:------------:|----------------------------------|:-----:|
| `cb` | Splitting/joining blocks of code | **n** |

### bufferline.nvim

| Key | Description | Mode |
|:---------:|-------------|:-----:|
| `` | Prev Buffer | **n** |
| `` | Next Buffer | **n** |

### neotest

| Key | Description | Mode |
|:------------:|-------------------------------|:-----:|
| `t` | +test | **n** |
| `tl` | Run Last (Neotest) | **n** |
| `to` | Show Output (Neotest) | **n** |
| `tO` | Toggle Output Panel (Neotest) | **n** |
| `tr` | Run Nearest (Neotest) | **n** |
| `ts` | Toggle Summary (Neotest) | **n** |
| `tS` | Stop (Neotest) | **n** |
| `tt` | Run File (Neotest) | **n** |
| `tT` | Run All Test Files (Neotest) | **n** |
| `tw` | Toggle Watch (Neotest) | **n** |

### nvim-dap

| Key | Description | Mode |
|:------------:|-------------------------|:-----:|
| `da` | Run with Args | **n** |
| `db` | Toggle Breakpoint | **n** |
| `dB` | Breakpoint Condition | **n** |
| `dc` | Run/Continue | **n** |
| `dC` | Run to Cursor | **n** |
| `dg` | Go to Line (No Execute) | **n** |
| `di` | Step Into | **n** |
| `dj` | Down | **n** |
| `dk` | Up | **n** |
| `dl` | Run Last | **n** |
| `do` | Step Out | **n** |
| `dO` | Step Over | **n** |
| `dP` | Pause | **n** |
| `dr` | Toggle REPL | **n** |
| `ds` | Session | **n** |
| `dt` | Terminate | **n** |
| `dw` | Widgets | **n** |

### nvim-dap-ui

| Key | Description | Mode |
|:------------:|-------------|:------------:|
| `de` | Eval | **n**, **v** |
| `du` | Dap UI | **n** |

### timerly

| Key | Description | Mode |
|:-----------:|--------------|:-----:|
| `T` | Toggle Timer | **n** |

### windsurf.nvim

| Key | Description | Mode |
|:------------:|------------------------------|:-----:|
| `` | Codeium previous suggestion | **i** |
| `` | Codeium next suggestion | **i** |
| `` | Codeium accept suggestion | **i** |
| `a` | +ai | **n** |
| `aa` | Open Codeium Chat in Browser | **n** |

### copilot.vim, CopilotChat.nvim

| Key | Description | Mode |
|:------------:|------------------------------|:------------:|
| `` | Copilot previous suggestion | **i** |
| `` | Copilot next suggestion | **i** |
| `` | Copilot accept suggestion | **i** |
| `a` | +ai | **n**, **v** |
| `aa` | Toggle (CopilotChat) | **n**, **v** |
| `ap` | Prompt Actions (CopilotChat) | **n**, **v** |
| `am` | Select Model (CopilotChat) | **n**, **v** |
| `aq` | Quick Chat (CopilotChat) | **n**, **v** |
| `ax` | Clear (CopilotChat) | **n**, **v** |

## AI

Script for generating Lua files will prompt you to select an AI plugin. You can choose Codeium (Windsurf plugin) or GitHub Copilot.

### Windsurf

Setup:

1. Open nvim
2. Run the command `:Codeium Auth`
3. Select the `Open Default Browser` option
4. Copy the generated token
5. Switch to nvim
6. Paste the copied token

### Copilot

Setup:

1. Open nvim
2. Run the command `:Copilot setup`
3. Authorize with GitHub
4. Switch to nvim