Important
- Neovim v0.12+
- fd (fd-find on ubuntu) brew, apt
- fzf brew, apt (outdated), binary
- ripgrep brew, apt (outdated), binary
- some flavor of Nerd Font for your client (if running remotely it's your client terminal that needs the font not the server)
If any Treesitter parsers are missing in the :checkhealth :TSInstall <parser>
gh cli + notify extension
brew install gh
gh auth login
gh ext install meiji163/gh-notifytree-sitter-cli brew, apt
Note
- Some tweaks are small screen specific - mostly messages
- The coding setup has modular configs for Lua, HTML, CSS, Tailwind, JavaScript, and TypeScript with Svelte(Kit)
:Masonto install needed lsp. See LSP folder for configs, enable / disable via lsp.lua in vim.lsp.enable() - Configured with modular Lazy and Mason with git support via GitSigns and Neogit
:ToggleThemeswitches from catppuccin mocha (dark) to latte (light) - see theme.lua
- Codeium AI added for completions.
:Codeium Authto add api key - requires free account - snacks dashboard
<leader>sswith repo issues, prs, notifications, git-diff - snacks picker available in addition to telescope
- replaced auto-session with possession for snacks dash
- blink-cmp with builtin vim.lsp.config
- diff-view added
<leader>gdor<leader>ghfor current file history
- #8 Dashboard layout buggy when too small a window. Known issue wiht terminal output.
- #9 Terminal comands run from dashboard may still interact with snacks dashboard if git commands havne't completed
| #Git | #Coding-Centric | #UI-Related | #Utility |
|---|
- gitsigns - gutter indicator of changes, stage hunks or buffers, preview hunk changes, blame lines keymaps
<leader>hp<leader>hsh - neogit - git for nvim with log, diff, and all the normal git commands
:Neogitdiffview - diff for cuffent file among other diff options
- comment - quickly commenting lines of code normal
gbcblockgccline, visualgc,gcAat end of line - conform - better handling of formatters. Configured to use prettierrc for current project
- nvim-autopairs - add closing ) ] } etc
nvim-cmp - nvim auto completions -<C-space>show,<C-e>close,<CR>confirm- nvim-surround - mappings for adding character around a selection
<C-s> - nvim-tresitter - Nvim parser for syntax highlighting
- todo-comments - add todos as comments to files with 'TODO:' 'BUG:' 'WARN:' etc for highlighting and searchable - integrates with telescope
<leader>ft - trouble - diagnostics handler
<leader>xxtoggle diagnostics,<leader>cltoggle focus,<leader>xQtoggle quickfix list
- colorscheme - choice of color scheme config for catppuccin
dressing - some ui visual things - moves some dialogs out of the bottom left foe better visibility / readability like nvim-tree add or rename filesindent-blankline - set indentation guide indicators- lualine - status line options for git branch, diff, better mode visibility, hostname etc
- noice - UI customizations like relocating command input and search centrally on screen some lsp popup updates and message handling - :Noice errors for a popup of error messages
auto-session - save and restoring working sessions - integrates with telescope- bufferline - buffers as tabs with status - configurable as tabs of buffers
- markdown - markdown preview automatic in normal mode
- vim-maximizer - toggle a split to full screen and back
<leader>sm - nvim-tree - file explorer
<C-]>set cwd,-to go up a level,aadd,rrename,ddelete,mmark,bmvmove mark - telescope - searches for files, buffers, strings. todos from todo-comments, sessions from possession
- which-key - popup list of key commands when you start a command - ie v for visual mode will popup with motions you can use
| #Search | #Motions | #Maintenance | #Spell | #Others |
|---|
<leader> is mapped to SPACE in the options.lua
/ search buffer
:s/seach/replace/g search and replace a line
:%s/search/replace/gc search and replace buffer with confirmation
:Telescope lsp_definitions go to current function definition
<leader>ff find files
<leader>fs find strings
<leader>ft find todos
f followed by character goes to next instance - prepend number to skip
0 go to start of line
$ go to end of line
a append after cursor
A append end of line
i insert before cursor
I insert start of line
]h next hunk
[h previous hunk
:checkhealth Lazy check health of setup and plugin dependencies
:Mason update and install LSP, formatters, linters, etc
:Lazy update and install configured plugins
:set spell enable builtin spell checker
:set nospell disable spell checker
]s next misspelled
[s previous misspelled
z= suggest corrections
zg add to correct words
<C-e> close auto complete without confirmation - should close lsp popups too
q close nvim-tree pane if focus otherwise <leader>ee
q close neogit and popups like :Lazy or :Mason interfaces and the :Noice errors popup
:term open a terminal
<ESC><ESC> exit insert mode in a terminal buffer
:Neogit commit :Neogit push do git things
Note
A lot of my initial setup was thanks to inspiration from Josean Martinez's setup