Skip to content

Commit 05a6821

Browse files
committed
feat(neovim): updated plugin list and installation guide
Signed-off-by: chris1320 <chris1320is@protonmail.com>
1 parent d11dba7 commit 05a6821

File tree

4 files changed

+91
-151
lines changed

4 files changed

+91
-151
lines changed

.obsidian/types.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"types": {
3+
"aliases": "aliases",
4+
"cssclasses": "multitext",
5+
"tags": "tags",
6+
"description": "text"
7+
}
8+
}

.obsidian/workspace.json

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,17 @@
44
"type": "split",
55
"children": [
66
{
7-
"id": "7dcac1028eed61b5",
7+
"id": "84be934fb09bad62",
88
"type": "tabs",
99
"children": [
1010
{
11-
"id": "509afef58ce99456",
11+
"id": "89b518aa7a6f247d",
1212
"type": "leaf",
1313
"state": {
14-
"type": "markdown",
14+
"type": "diff-view",
1515
"state": {
1616
"file": "index.md",
17-
"mode": "preview",
18-
"source": true
17+
"staged": false
1918
}
2019
}
2120
}
@@ -65,7 +64,8 @@
6564
"state": {}
6665
}
6766
}
68-
]
67+
],
68+
"currentTab": 2
6969
}
7070
],
7171
"direction": "horizontal",
@@ -85,7 +85,6 @@
8585
"state": {
8686
"type": "localgraph",
8787
"state": {
88-
"file": "index.md",
8988
"options": {
9089
"collapse-filter": true,
9190
"search": "",
@@ -119,12 +118,11 @@
119118
"type": "leaf",
120119
"state": {
121120
"type": "file-properties",
122-
"state": {
123-
"file": "index.md"
124-
}
121+
"state": {}
125122
}
126123
}
127-
]
124+
],
125+
"currentTab": 1
128126
},
129127
{
130128
"id": "a70ba0ba8f0ff435",
@@ -135,9 +133,7 @@
135133
"type": "leaf",
136134
"state": {
137135
"type": "outline",
138-
"state": {
139-
"file": "index.md"
140-
}
136+
"state": {}
141137
}
142138
},
143139
{
@@ -146,7 +142,6 @@
146142
"state": {
147143
"type": "backlink",
148144
"state": {
149-
"file": "index.md",
150145
"collapseAll": false,
151146
"extraContext": false,
152147
"sortOrder": "alphabetical",
@@ -163,7 +158,6 @@
163158
"state": {
164159
"type": "outgoing-link",
165160
"state": {
166-
"file": "index.md",
167161
"linksCollapsed": false,
168162
"unlinkedCollapsed": true
169163
}
@@ -183,10 +177,11 @@
183177
"command-palette:Open command palette": false
184178
}
185179
},
186-
"active": "509afef58ce99456",
180+
"active": "89b518aa7a6f247d",
187181
"lastOpenFiles": [
188-
"Operating Systems/Arch Linux/Contents/Automatic Customization.md",
182+
"Text Editors/Neovim/Neovim.md",
189183
"index.md",
184+
"Operating Systems/Arch Linux/Contents/Automatic Customization.md",
190185
"Terminals/Termux/Termux.md",
191186
"Operating Systems/Arch Linux/Contents/Setting Up Waybar.md",
192187
"Operating Systems/Arch Linux/Contents/Setting Up dunst.md",
@@ -200,7 +195,6 @@
200195
"Operating Systems/Arch Linux/Arch Linux.md",
201196
"Operating Systems/Fedora Workstation/Fedora Workstation.md",
202197
"Shells/ZSH/ZSH.md",
203-
"Text Editors/Neovim/Neovim.md",
204198
"Operating Systems/Arch Linux/Contents",
205199
"Operating Systems/Arch Linux",
206200
"assets/images/banner/SetupGuides-banner.png",

Text Editors/Neovim/Neovim.md

Lines changed: 67 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,60 @@
1+
---
2+
title: Neovim
3+
description: My Neovim configuration for code editing.
4+
draft: false
5+
---
6+
17
# Neovim
28

3-
This guide will help you install [Neovim](https://neovim.io/) and plugins that I use.
4-
I frequently work with terminals and I find [Vim](https://www.vim.org/) really
5-
helpful when editing code and text without needing a GUI. However, I didn't
6-
have the time and motivation to learn VimScript, but then I heard about Neovim.
7-
I have some experience with Lua so I thought that I might give it a try, and
8-
this is the result. Note that I am not an experienced Neovim (and Lua) user
9-
so expect that there will be occasional bugs.
9+
This guide will help you install [Neovim](https://neovim.io/) and plugins that I use. I frequently work with terminals and I find [Vim](https://www.vim.org/) really helpful when editing code and text without needing a GUI. However, I didn't have the time and motivation to learn VimScript, but then I heard about Neovim. I have some experience with Lua so I thought that I might give it a try, and this is the result. Note that I am not an experienced Neovim (and Lua) user so expect that there will be occasional bugs.
1010

1111
## Plugins List
1212

13-
- Code Completion
14-
- [Comment.nvim](https://github.com/numToStr/Comment.nvim): Smart and powerful comment plugin for Neovim.
15-
- [nvim-autopairs](https://github.com/windwp/nvim-autopairs): A super powerful autopair plugin for Neovim that supports multiple characters.
16-
- [nvim-cmp](https://github.com/hrsh7th/nvim-cmp): A completion plugin for neovim coded in Lua.
17-
- [cmp-buffer](https://github.com/hrsh7th/cmp-buffer): nvim-cmp source for buffer words.
18-
- [cmp-cmdline](https://github.com/hrsh7th/cmp-cmdline): nvim-cmp source for cmdline.
19-
- [cmp-git](https://github.com/petertriho/cmp-git): nvim-cmp source for git.
20-
- [cmp-nvim-lsp](https://github.com/hrsh7th/cmp-nvim-lsp): nvim-cmp source for neovim builtin LSP client.
21-
- [cmp-nvim-lua](https://github.com/hrsh7th/cmp-nvim-lua): nvim-cmp source for nvim lua.
22-
- [cmp-path](https://github.com/hrsh7th/cmp-path): nvim-cmp source for filesystem paths.
23-
- [cmp_luasnip](https://github.com/saadparwaiz1/cmp_luasnip): nvim-cmp source for LuaSnip.
24-
- [LuaSnip](https://github.com/L3MON4D3/LuaSnip): Snippet engine for Neovim written in Lua.
25-
- [friendly-snippets](https://github.com/rafamadriz/friendly-snippets): Snippet collection for different programming languages.
26-
- [nvim-surround](https://github.com/kylechui/nvim-surround): Add/change/delete surrounding delimiter pairs with ease.
27-
- Debugging
28-
- [mason-nvim-dap.nvim](https://github.com/jay-babu/mason-nvim-dap.nvim): mason.nvim and nvim-dap integration.
29-
- [nvim-dap](https://github.com/mfussenegger/nvim-dap): Debug Adapter Protocol client implementation for Neovim.
30-
- [nvim-dap-ui](https://github.com/rcarriga/nvim-dap-ui): A UI for nvim-dap.
31-
- [nvim-dap-virtual-text](https://github.com/theHamsta/nvim-dap-virtual-text): Adds virtual text support to nvim-dap.
32-
- File Explorer
33-
- [nvim-tree](https://github.com/nvim-tree/nvim-tree.lua): File explorer tree
34-
- Fuzzy Search
35-
- [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim): Fuzzy Finder.
36-
- [telescope-fzf-native.nvim](https://github.com/nvim-telescope/telescope-fzf-native.nvim): Telescope native sorter.
37-
- Linting and Syntax Checking/Highlighting
38-
- [conform.nvim](https://github.com/stevearc/conform.nvim): Lightweight yet powerful formatter plugin for Neovim.
39-
- [nvim-lint](https://github.com/mfussenegger/nvim-lint): An asynchronous linter plugin for Neovim complementary to the built-in Language Server Protocol support.
40-
- [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig): Language Server Protocol (LSP) configuration helper.
41-
- [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter): Better syntax highlighting.
42-
- [trouble.nvim](https://github.com/folke/trouble.nvim): Error and status line manager.
43-
- [vim-illuminate](https://github.com/RRethy/vim-illuminate): Highlight all occurrences of words under cursor.
44-
- Plugin Managers
45-
- [lazy.nvim](https://github.com/folke/lazy.nvim): A modern plugin manager for Neovim.
46-
- [mason.nvim](https://github.com/williamboman/mason.nvim): LSP/DAP servers, linters, and formatters.
47-
- [mason-lspconfig.nvim](https://github.com/williamboman/mason-lspconfig.nvim): lspconfig integration for Mason.
48-
- [mason-tool-installer.nvim](https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim): Install and upgrade third party tools automatically.
49-
- Proprietary Plugins[^4]
50-
- [copilot.lua](https://github.com/zbirenbaum/copilot.lua): Fully featured & enhanced replacement for copilot.vim complete with API for interacting with Github Copilot.
51-
- Quality-of-Life Plugins
52-
- [gitignore.nvim](https://github.com/wintermute-cell/gitignore.nvim): A neovim plugin for generating .gitignore files.
53-
- Theming and Visual Plugins
54-
- [barbar.nvim](https://github.com/romgrk/barbar.nvim): Better tabs for Neovim.
55-
- [catppuccin](https://github.com/catppuccin/nvim): A Neovim theme.
56-
- [ccc.nvim](https://github.com/uga-rosa/ccc.nvim): Color picker and highlighter plugin for Neovim.
57-
- [dressing.nvim](https://github.com/stevearc/dressing.nvim): A UI customization plugin.
58-
- [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim): Git Integration for buffers.
59-
- [indent-blankline](https://github.com/lukas-reineke/indent-blankline.nvim): Indentation guides.
60-
- [lspkind.nvim](https://github.com/onsails/lspkind.nvim/): VSCode-like pictograms for Neovim LSP completion items.
61-
- [lsp_lines.nvim](https://git.sr.ht/%7Ewhynothugo/lsp_lines.nvim): Show LSP diagnostics in a separate line.
62-
- [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim): A Neovim statusline plugin.
63-
- [numb.nvim](https://github.com/nacro90/numb.nvim): Peek lines just when you intend.
64-
- [nvim-notify](https://github.com/rcarriga/nvim-notify): Notification Manager.
65-
- [nvim-ufo](https://github.com/kevinhwang91/nvim-ufo): Modern fold in Neovim.
66-
- [smartcolumn.nvim](https://github.com/m4xshen/smartcolumn.nvim): A Neovim plugin hiding your colorcolumn when unneeded.
67-
- [which-key.nvim](https://github.com/folke/which-key.nvim): Show available key bindings.
68-
69-
## Custom Key Bindings
70-
71-
The `which-key` plugin will show you available keymaps as you type.
72-
73-
| Key | Resulting Command | Action | Source/Plugin |
74-
| ------- | --------------------- | ---------------------------------------------- | ------------- |
75-
| `,` | | Leader key | Neovim |
76-
| | | | |
77-
| `<A-,>` | `:BufferPrevious` | Go to previous buffer | Barbar |
78-
| `<A-.>` | `:BufferNext` | Go to next buffer | Barbar |
79-
| `<A-1>` | `:BufferGoto 1` | Go to the first buffer | Barbar |
80-
| `<A-2>` | `:BufferGoto 2` | Go to the second buffer | Barbar |
81-
| `<A-3>` | `:BufferGoto 3` | Go to the third buffer | Barbar |
82-
| `<A-4>` | `:BufferGoto 4` | Go to the fourth buffer | Barbar |
83-
| `<A-5>` | `:BufferGoto 5` | Go to the fifth buffer | Barbar |
84-
| `<A-6>` | `:BufferGoto 6` | Go to the sixth buffer | Barbar |
85-
| `<A-7>` | `:BufferGoto 7` | Go to the seventh buffer | Barbar |
86-
| `<A-8>` | `:BufferGoto 8` | Go to the eighth buffer | Barbar |
87-
| `<A-9>` | `:BufferGoto 9` | Go to the ninth buffer | Barbar |
88-
| `<A-0>` | `:BufferLast` | Go to the last buffer | Barbar |
89-
| `<A-<>` | `:BufferMovePrevious` | Move current buffer to [i-1] | Barbar |
90-
| `<A->>` | `:BufferMoveNext` | Move current buffer to [i+1] | Barbar |
91-
| | | | |
92-
| `<esc>` | | Close the `nvim-cmp` panel if open. | nvim-cmp |
93-
| `<cr>` | | Accept suggestion if `nvim-cmp` panel is open. | nvim-cmp |
13+
This setup now uses [LazyVim](https://www.lazyvim.org/) as its base. Older versions of the dotfiles are built up from scratch.
14+
15+
> The following [extras](https://www.lazyvim.org/extras) are enabled:
16+
>
17+
> - Coding
18+
> - [Copilot](https://www.lazyvim.org/extras/coding/copilot)
19+
> - [DAP](https://www.lazyvim.org/extras/dap/core)
20+
> - Language Support
21+
> - [Clangd](https://www.lazyvim.org/extras/lang/clangd)
22+
> - [Java](https://www.lazyvim.org/extras/lang/java)
23+
> - [JSON](https://www.lazyvim.org/extras/lang/json)
24+
> - [Markdown](https://www.lazyvim.org/extras/lang/markdown)
25+
> - [Omnisharp](https://www.lazyvim.org/extras/lang/omnisharp)
26+
> - [Python](https://www.lazyvim.org/extras/lang/python)
27+
> - [Tailwind](https://www.lazyvim.org/extras/lang/tailwind)
28+
> - [Typescript](https://www.lazyvim.org/extras/lang/typescript)
29+
30+
> The following base plugins are disabled:
31+
>
32+
> - [flash.nvim](https://github.com/folke/flash.nvim)
33+
> - [tokyonight.nvim](https://github.com/folke/tokyonight.nvim)
34+
35+
> The following plugins are added in addition to the base plugins:
36+
>
37+
> - [gitignore.nvim](https://github.com/wintermute-cell/gitignore.nvim): A neovim plugin for generating `.gitignore` files.
38+
> - [lsp_lines.nvim](https://git.sr.ht/~whynothugo/lsp_lines.nvim): Show LSP diagnostics in a separate line.
39+
> - [numb.nvim](https://github.com/nacro90/numb.nvim): Peek lines just when you intend.
40+
> - [presence.nvim](https://github.com/andweeb/presence.nvim): [Discord](https://discord.com/) Rich Presence for Neovim.
41+
> - [smartcolumn.nvim](https://github.com/m4xshen/smartcolumn.nvim): A Neovim plugin hiding your colorcolumn when unneeded.
42+
> - [twilight.nvim](https://github.com/folke/twilight.nvim): Dim inactive portions of the code you're editing using TreeSitter.
43+
> - [vim-arduino](https://github.com/stevearc/vim-arduino): Vim plugin for compiling and uploading arduino sketches.
44+
> - [zen-mode.nvim](https://github.com/folke/zen-mode.nvim): Distraction-free coding for Neovim.
9445
9546
## Platform Compatibility
9647

9748
This setup has been tested on the following platforms:
9849

99-
- Arch Linux
50+
- [[Arch Linux]]
10051
- Kali Linux WSL
10152
- Linux Mint 21
102-
- Termux Android Terminal Emulator
53+
- [[Termux]] Android Terminal Emulator
10354

10455
## Requirements
10556

106-
- [Neovim](https://neovim.io/) v0.9.0+
57+
- [Neovim](https://neovim.io/) v0.9.2+
10758
- [Git](https://git-scm.com/)
10859
- [gcc](https://gcc.gnu.org/) or [clang](https://clang.llvm.org/)
10960
- [make](https://www.gnu.org/software/make/)
@@ -113,54 +64,40 @@ This setup has been tested on the following platforms:
11364

11465
### Automatic Customization Guide
11566

116-
**NOTE**: This assumes that you are using APT as your package manager.
117-
118-
1. Update APT. `sudo apt update`
119-
2. Install git. `sudo apt install git`
120-
3. Install Neovim.
121-
- Check if Neovim v0.9.0+ is available in your package manager. `$ apt show neovim`
122-
- If version 0.9.0 above is available, install it. `$ apt install --upgrade neovim`
123-
- Otherwise, download it from [their GitHub repository](https://github.com/neovim/neovim/releases/download/stable/nvim-linux64.deb) and install it. `$ dpkg -i nvim-linux64.deb`[^1]
124-
4. Install requirements.
125-
5. Run the installer.
126-
- Using _wget_: `bash <(wget -q -O - https://raw.githubusercontent.com/SetupGuides/Neovim/main/install)`
127-
- Using _curl_: `bash <(curl -sSf https://raw.githubusercontent.com/SetupGuides/Neovim/main/install)`
128-
6. Run `nvim` and allow installation of plugins.
129-
7. Check for errors by running `:checkhealth`.
130-
8. Install LSPs, DAPs, and linters using Mason. `:Mason`
67+
1. Install the [[#Requirements|requirements]].
68+
2. Run the installer.
69+
- Using _curl_: `bash <(curl -sSf https://raw.githubusercontent.com/Chris1320/SetupGuides-Neovim/main/install)`
70+
- Using _wget_: `bash <(wget -q -O - https://raw.githubusercontent.com/Chris1320/SetupGuides-Neovim/main/install)`
71+
3. Run `nvim` and wait for Lazy to install the plugins.
72+
4. Check for errors by running `:checkhealth`.
13173

13274
### Manual Customization Guide
13375

134-
1. Install git. `$ sudo apt update -y && sudo apt install -y git`
135-
2. Installing Neovim
136-
- Check if Neovim v0.9.0+ is available in your package manager. `$ apt show neovim`
137-
- If version 0.9.0 above is available, install it. `$ apt install --upgrade neovim`
138-
- Otherwise, download it from [their GitHub repository](https://github.com/neovim/neovim/releases/download/stable/nvim-linux64.deb) and install it. `$ dpkg -i nvim-linux64.deb`[^1]
139-
3. Copy the contents of [src/](https://github.com/SetupGuides/Neovim/tree/main/src) to your `~/.config/nvim/`. The directory must look like this:
76+
1. Install the [[#Requirements|requirements]].
77+
2. Clone the repository.
78+
```bash
79+
git clone https://github.com/Chris1320/SetupGuides-Neovim.git
80+
```
81+
3. Copy the contents of [src/](https://github.com/Chris1320/SetupGuides-Neovim/tree/main/src) to your `~/.config/nvim/`. The directory must look like this:
14082

14183
```text
14284
$ tree ~/.config/nvim/
14385
14486
/home/<user>/.config/nvim/
14587
├── init.lua
14688
└── lua
147-
├── info.lua
148-
├── keymaps.lua
149-
├── misc.lua
150-
├── options.lua
151-
├── plugins
152-
│   └── <plugin-name>.lua
153-
└── vars.lua
154-
155-
5 directories, 34 files
89+
├── config
90+
│ ├── autocmds.lua
91+
│ ├── keymaps.lua
92+
│ ├── lazy.lua
93+
│ ├── misc.lua
94+
│ ├── options.lua
95+
│ └── vars.lua
96+
└── plugins
97+
└── <plugin-name>.lua
98+
99+
4 directories, 33 files
156100
```
157101

158-
4. Install dependencies. `$ sudo apt install --upgrade clang curl make nodejs`[^2]
159-
5. Run `nvim`. lazy.nvim will now update, install, and compile the plugins.
160-
6. To check if everything is installed correctly, enter `:checkhealth`.
161-
7. Install LSP/DAP servers, linters, and formatters by running `:Mason` inside Neovim.[^3]
162-
163-
[^1]: To download and install using wget and dpkg: `wget -O ./nvim-linux64.deb https://github.com/neovim/neovim/releases/download/stable/nvim-linux64.deb && sudo dpkg -i ./nvim-linux64.deb`
164-
[^2]: You can also install recommended but optional additional packages used by Telescope: `$ sudo apt install --upgrade fd-find ripgrep` (`fd-find` is `fd` on Termux systems.)
165-
[^3]: Manual configuration is necessary for each LSP server, but I configured some of them in `src/lua/plugins/lsp.lua`.
166-
[^4]: Proprietary plugins are optional to install.
102+
4. Run `nvim`. lazy.nvim will now update, install, and compile the plugins.
103+
5. To check if everything is installed correctly, enter `:checkhealth`.

index.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
---
2-
title: SetupGuides - This is how I customize my stuff.
2+
title: Chris1320/SetupGuides
3+
description: This is how I customize my stuff.
34
draft: false
45
---
56

@@ -27,7 +28,7 @@ This documentation is created using [Obsidian](https://obsidian.md/), but you sh
2728

2829
## Bug/Error Reporting
2930

30-
Only documentation errors should be reported in this repository. If you find a bug or an error in specific customization guides (e.g., a bug in one of the scripts in [[Arch Linux|Arch Linux Customization Guide]]), please submit an issue in its dedicated repository.
31+
Only documentation errors should be reported in this repository. If you find a bug or an error in dotfiles/scripts of specific guides (e.g., [[Arch Linux]] customization guide), please submit an issue in its dedicated repository.
3132

3233
## Conventional Commits
3334

0 commit comments

Comments
 (0)