Skip to content

llGaetanll/nvim-lite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 

Repository files navigation

nvim-lite

A neovim config that strives to be as simple as possible, while remaining usable

Anti Goals

  • Tabs
  • Splits

Years of using these features have caused me repeated frustrations, such as:

  • Having to think about where a tab/window is, or if it's even open
  • Wanting to reorganize my buffer layout, moving splits to other tabs, or tabs to other splits, etc...

nvim-lite is an experiment to try to take all this friction out, and still make the best possible editor experience. I only have two eyes, I don't need more than one buffer at a time.

Goals

  • Speed (of editor and of use)
  • Out of your way (if it's on the screen, it better be really important)

How do I try this

If you want to try this configuration without having to touch your existing one, a nice trick is to:

  1. Clone this repository somewhere on your system
  2. ln -s /path/to/repo $HOME/.config/

Now if you run NVIM_APPNAME="nvim-lite" nvim, it should start with this config. If you end up liking it, you can even alias that last command.

alias nvim-lite="NVIM_APPNAME=nvim-lite nvim"

If you don't end up liking it, you just have to delete $HOME/.config/nvim-lite and $HOME/.local/share/nvim-lite.

So how do I use this?

If you're used to the vscode-like neovim interfaces, this might seem like a big change. This config does everything it can to encourage you to spend less time on things that don't matter, like cycling through tabs or going down a file tree. It also tries very hard to make all the most important stuff as accessible as possible.

  1. Use the jumplist.
  2. Use Telescope. This configuration comes with handy key binds for live grep, find files, and file browser.

Key Bindings

This configuration is still in its early stages, expect changes.

In general, you can find all the system keybinds in keybinds. Some of the more important ones are listed below. In all of these, space is the leader key.

Movement

  • ctrl + o: Go back a jump
  • ctrl + i: Go forward a jump
  • <leader>t: Opens Telescope file browser Inside of the file browser:
    • k/j: goes up/down
    • l: opens the file/directory
    • h: goes back a directory
    • a: creates a file in the current directory
  • <leader>f: Opens the default Telescope file searcher
  • <leader>l: Opens the default Telescope live grepper.

Git

This configuration comes with Diffview and Gitsigns.

  • <leader>dd: Toggle Diffview
  • <leader>dh: Toggle Diffview File History
  • <leader>gs: Stage hunk
  • <leader>gr: Reset hunk
  • <leader>gS: Unstage hunk

Theming

Theming is powered by llGaetanll/base16, which exposes the :Theme command.

TODO

  • A basic user guide would be nice
  • nvim-autopairs doesn't work, parentheses, and quotes are not auto completed
  • Keybinds to move between windows actually move the windows themselves
  • lsp loads all configs upfront, instead of just the ones loaded into the buffer
  • Gitsigns toggle hunk in keybinds doesn't actually toggle hunks
  • Add lsp-specific config file support
  • Only enable mouse for left click
  • Configure file management keybinds in Telescope file browser
  • Document theming. Base16 is still young, but quite powerful already.
  • Telescope file finder opens the file in Diffview if it's open over it
  • Put all keybinds in keybinds file, and export them to the right places
  • Format typescript files
  • Telescope files finder prevents us from closing nvim if it's the only item
  • Indents don't adapt to the theme's colors
  • Indent can be guessed wrong when creating a new file.
  • Disable "open in new tab" keybind in Telescope
  • lsp does not listen to rustfmt.toml. Sadly, this requires us to load a list of configs for preset servers. Ok for my use-case but not very elegant.
  • If Telescope get-references only finds one usage for an item, it should not even open the menu, but jump to the location of the item.
  • It should be easier to see if and where a large project has lsp error (lualine would improve this for the open buffer)
  • Currently, this config folds at level 9, but I'd prefer if it never folded
  • Diffview breaks when you start it from the initial file finder
  • Telescope lsp references should not list the function definition
  • Telescope file browser / live grep / file finder have keybind disparities - [ ] l can be used in file browser to open a file but not in file finder or live grep - [ ] ctrl + i/o (split open) should work in every telescope picker, in normal and insert mode
  • Telescope (and Telescope plugins) come with default keybinds that would better be removed.
  • Telescope lsp references comes displays both file and line contents in results pane, but should show only the file
  • Seeing the git branch in the nvim line would be nice. (lualine fixes this)
  • Telescope find files could use something to toggle git ignore in search results maybe?
  • Diffview colors on theme change appear wrong. Example: Start on theme everforest, switch to default-dark. Colors appear different with diffs then vs on restart.
  • Add commit/pull/push support from inside nvim? Currently using Diffview & Gitsigns, can't find a good plugin just for this.
  • Custom colorschemes are great, but some colors need to be consistent across themes (i.e. red for errors/diffremove, orange for warnings/diffchange, green for diffadd etc..) This is a bigger issue and likely needs to be addressed either in llGaetanll/base16.nvim or llGaetanll/prisma.nvim. In the meantime, if you need a theme with "correct enough" colors, default-dark is your friend.

About

A simple neovim config that I use daily.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages