Probably overcomplicated
Certainly not finished
Definitively heretical ;p
This config revolve around nvim as both an omni editor and a tool orchestrator. It is also very much a test bed for new ideas!
Why nvim?
My text editor journey went as follow:
Code::Blocks → Notepad++ → Visual Studio → VSCode → Neovim
I was aware of vim/nvim for years but didn't think much of it,
Then I switching to Linux and figured It was finally time to try it out!
I hesitated a bit between nvim and emacs, but lua and the motions intrigued me...
- Hundreds of custom keymaps (I am unable to stop myself ;p)
- Extensive mouse support! (°)°) with mouse binds!
- Native Word "speed dial" in normal mode with
+/- - with Easy toggling of booleans:
true/false,yes/no,on/off - and Capitalization flipping
- Auto-pairing via nvim-autopairs
- Built-in white spaces trimming on save (+custom command)
- Completion via blink.cmp, with extensive config including cmdline completion
- Built-in auto save with a timer every 7min
fast move using modifier + arrows go to middle of screen go to first/last line nav dir using keymaps without file browser
Supported languages:
- lua
- markdown
- yaml
- toml
- bash
Tools:
- Treesitter highlighting
- LSP
- Custom snippets
- nvim-lint,
- conform.nvim
- sniprun
neogit custom git thin wrapper
- neo-tree
- oil.nvim
- custom user commands and keymaps:
- delete current file,
- set readonly,
- move dir
- etc...
- lualine with many custom components
- barbar.nvim for tabs
- custom winbar, displaying curr file path
- customized statuscolumn thanks to gitsign, statuscol-nvim and some tweaking
- trouble.nvim
- indent-blankline.nvim
Tiny helpers:
- Auto save on
VimLeavePre - Command to save/edit session
- Reload session with a custom command
Currently only supports one global session
- Based on Nightfox
- Custom highlight groups
- Tweaked for a black & white eInk monitor -- no proper colors for now
- Managed via lazy.nvim
Install the latest version of neovim with your package manager of choice.
Backup existing config files if applicable.
mv ~/.config/nvim ~/.config/nvim_bakGo to config files location
cd ~/.config/nvim/Clone the repo:
git clone git@github.com:qiine/qiine-nvim-conf.gitOpen Neovim.
nvim Plugins will install automatically thanks to lazy.nvim
-
Terminal
I choose wezterm, config: github.com/qiine/wezterm-confAs neovim is a terminal centered application and I use a very complex sets of keybinds, a terminal supporting kitty keyboard reporting protocol or similar is a must.
I have not spent any time making my nvim config usable with other terminals and don't plan to. (I know Konsole struggles)
-
git
-
ripgrep
-
fd
-
fzf
optional
- stylua
- marksman
- lua_ls
- luacheck
- eslint_d
This project is licensed under the MIT License.