My Neovim configuration based on LazyVim, with added plugins and LSPs to extend its functionality. Every configuration was done with transparency in mind.
Some interesting things in this config are:
- the keymaps in keymaps.lua
- the ~30 ms startup time (lazy load everything)
- see the first 2 auto commands in here to speed up WSL
- my custom color scheme
- 90% stolen from this dude, 10% my own
- intentionally avoids the use of bright red and yellow (reserved for errors)
- spider (better
w
,e
, andb
) - mini.files (less intrusive version of oil.nvim, with added git integration and dotfiles toggle)
- flatten.nvim (stops nested nvim instances, amazing when used with autojump and betterTerm)
- peek.nvim (a fairly simple markdown preview plugin that works well with WSL)
- reticle.nvim (improved cursor line)
- the LSP and formatter support for R-Markdown, C++, Java, and Python (mostly thanks to LazyVim)
- see
markdown.lua
,peek.lua
, andmarkdowntable.lua
for markdown editing (no LSP needed)
- see
- I have successfully replaced
<C-n>
and<C-p>
with<C-j>
and<C-k>
everywhere - my custom markdown highlights for bullets and checkboxes in markdown
Note
Many of the plugins I use are not visible in lua/plugins/
because I use the
LazyVim distribution which already comes with lots of plugins. You can see
these in the LazyVim repo. I also have disabled some plugins that come with
LazyVim in the overrides.lua file.
This configuration is structured so that all plugin configurations are in the
./lua/plugins/
folder, with each plugin having its own file. This way, I can
remove a plugin by just deleting its file. See below:
Relevant File Structure
~/.config/nvim/
├── after
│ ├── ftplugin
│ │ └── {filetype}.lua
│ └── queries
│ └── markdown
│ └── highlights.scm
├── colors
│ └── macro.lua
├── lua
│ ├── config
│ │ ├── autocmds.lua
│ │ ├── keymaps.lua
│ │ ├── lazy.lua
│ │ └── options.lua
│ └── plugins
│ └── {plugin}.lua
├── queries
│ └── markdown
│ └── textobjects.scm
├── syntax
│ ├── markdown.vim
│ └── qf.vim
├── init.lua
└── README.md
Install requires Neovim 0.9+.
Clone the repository and install the plugins:
git clone git@github.com:n-crespo/nvim-config ~/.config/n-crespo/nvim-config
NVIM_APPNAME=n-crespo/nvim-config/ nvim --headless +"Lazy! sync" +qa
Open Neovim with this config:
NVIM_APPNAME=n-crespo/nvim-config/ nvim
- Fix transparent completion window
- Edit Treesitter highlighting for markdown checkboxes
- bordered floating window
- bordered floating terminal
-
require({})
less - transparent Lualine
- transparent LSP and save dialogues (bottom right)
-
<C-j>
and<C-k>
for cycling completions- in Telescope
- in command line popup
- in code completions
- image previews in telescope
- delete buffers through telescope
- Fix Shift+Tab in markdown files
- fix completion window highlights
- fix mini.files path not found errors
- escape to close telescope immediately
- fix
[Process exited 0]
when quit terminal - fix
<Tab>
keymap conflicts due to markdown plugin - vertical lualine separators?
- better spell check for markdown (ignore inline html + links + code blocks)
- window labels when split buffers
- better tab management
- better close/open tab mappings
- conceal chars in markdown
- checkboxes
- done
- not done
- bullet points
- single line quotes
- block quotes (back to using headlines.nvim)
- checkboxes
- format visual selection in markdown (bold + italic)
- code block insertion in insert mode
- better markdown latex previews
- command line completion (probably going to skip this one...)
-
:Telescope commands
(<leader>:
)
-
- smaller cmp window
- deal with trailing white space better (auto command)
- better spelling? (
spell.lua
) - telescope layout/open files picker
- inline image previews in markdown (switched to kitty)
- headlines but not slow (kitty again)
- window labels (incline)
- fix MacOS scrolling
- System specific settings in lua
- find tabline replacement
- Conceal dollar signs in markdown math
- multi-cursors
- better theme (less red, reserve for errors)
- easily customizable
- Treesitter support
- highlight misspelled words red/underlined
- fix R for running files
- fix markdown preview in WSL
- BETTER R-MARKDOWN goodness my last solution was bad
- better plugin reloading (
<leader>R
)