A Neovim configuration prioritizing minimalism and intuition.
The phylosophy is inspired by (aren't we all?) the original UNIX world view: keep it short, simple, do one thing and do it well. It does not attempt to do everything under the sun.
What it does:
- Provide intuitive
<leader>-led commands for:- Clean start/quit (and session management - save/load)
- If
.worspacefolder exists, it will automatically save session in.workspace/.workspace.nvimupon exit, and will attempt to reload it upon start up. - Can save and load sessions explicitly
- If
- File operations (save, save all, save as)
- Window navigation (splits, maximize/restore, etc)
- Buffers and tabs (create, list, navigate, rename, delete)
- Command palette (commands, history)
- Lists (files, buffers, tabs, search/replace, live grep)
- Language services: completion, go to defn/decl/help, unfold warnings/errors inline
- Language services: search symbols globally or in current file
- Language services: autoformat
- Diffing (select two buffers or two files to visually diff)
- Embedded terminals
- Git support (through Neogit)
- Clean start/quit (and session management - save/load)
Most of the UI for listing/selecting/naming/saving is based on Telescope, giving intuitive visual views. This gives the added benefit of fuzzy search/match for everything (buffers, tabs, commands, etc).
Prioritizes <leader>-based operation, with default leader set to the space bar.
This is quite ergonomic, and does not conflict with any existing shortcuts.
What it does NOT:
- Attempt to do everything under the sun
- Deep support for any particular language
- Implicit integration with any particular tool sets (e.g. build tools). This can be done the native nvim way by defining your custom commands in local .nvim.lua for project-specific commands.
- Provide keyboard bindings for every possible function (yes, seriously).
You can either add your own in
lua/keymaps.lua, or use the built-in<leader>:to bring up the command pallete. - Carry ridiculous amount of plugins most of which make it feel like it has ADHD and obsession with apperance.
Simply run install.sh. You must have neovim already installed.
After installation, simply run :h octopus.
To customize any of the key bindings, make your changes in lua/keymaps.lua.
This is also where the leader is defined (currently set to spacebar).
Simply make pull requests, leave comments, point out issues, or fork and do with the code whatever you want (just don't sue me)!