Skip to content

An configuration based on LazyVim with added plugins and LSPs to extend its functionality. Heavy focus on transparency.

Notifications You must be signed in to change notification settings

n-crespo/nvim-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neovim Configuration

My Neovim configuration based on LazyVim, with added plugins and LSPs to extend its functionality. Every configuration was done with transparency in mind.

start screen

Interesting Things

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, and b)
  • 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, and markdowntable.lua for markdown editing (no LSP needed)
  • 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.

Structure

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 Instructions

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

TODO

  • 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)
  • 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)

About

An configuration based on LazyVim with added plugins and LSPs to extend its functionality. Heavy focus on transparency.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published