scnvim is a simple, practical Neovim configuration based on kickstart-modular.nvim. It includes tweaks and customizations specifically tailored for data science and system administration workflows.
This configuration builds upon the excellent foundation provided by kickstart-modular.nvim, adding enhanced features for:
- Data Science: TMUX integration for REPL workflows, efficient code execution
- System Administration: Enhanced navigation, file management, and terminal integration
- General Development: Streamlined keybindings and modern plugin ecosystem
# Clone to ~/.config/nvim
git clone <your-repo> ~/.config/nvim
# Open Neovim and let Lazy install plugins
nvim:Lazy- Open plugin manager:Lazy sync- Update all plugins:Lazy log- View plugin update log
Leader key: Space
Local Leader key: , (comma)
s- Jump to any 2 characters<leader>s- Jump to any 1 characterf- Enhanced find character forwardF- Enhanced find character backwardt- Enhanced till character forwardT- Enhanced till character backward<leader>j- Jump to lines below<leader>k- Jump to lines above<leader>w- Jump to word beginnings forward<leader>b- Jump to word beginnings backward<leader>e- Jump to word ends forward<leader>/- Jump with multi-character search<leader>.- Repeat last motion
Ctrl+h- Move to left windowCtrl+l- Move to right windowCtrl+j- Move to lower windowCtrl+k- Move to upper window
<leader>sf- Search files<leader>sg- Search by grep (live grep)<leader>sw- Search current word<leader>sd- Search diagnostics<leader>sr- Resume last search<leader>s.- Search recent files<leader>sh- Search help<leader>sk- Search keymaps<leader>ss- Search select (Telescope builtin)<leader>sn- Search Neovim config files<leader><leader>- Search open buffers<leader>/- Fuzzy search in current buffer
\- Open/reveal NeoTree file explorer
When LSP is attached:
gd- Go to definitiongD- Go to declarationgr- Go to referencesgI- Go to implementationgy- Go to type definition<leader>D- Go to type definition<leader>ds- Document symbols<leader>ws- Workspace symbols<leader>rn- Rename symbol<leader>ca- Code actionK- Hover documentationCtrl+k- Signature help (insert mode)
<leader>q- Open diagnostic quickfix list[d- Previous diagnostic]d- Next diagnostic<leader>e- Show diagnostic error messages<leader>E- Open diagnostic quickfix list
When in a git-tracked file:
]c- Next git change/hunk[c- Previous git change/hunk<leader>hs- Stage hunk<leader>hr- Reset hunk<leader>hS- Stage buffer<leader>hR- Reset buffer<leader>hu- Undo stage hunk<leader>hp- Preview hunk<leader>hb- Blame line<leader>hB- Toggle line blame<leader>hd- Diff this<leader>hD- Diff this ~<leader>tb- Toggle git blame (virtual text)<leader>td- Toggle deleted lines
<leader>f- Format buffer/selectiongcc- Toggle line commentgc- Toggle comment (visual mode)gbc- Toggle block comment
Mini.nvim provides:
saiw)- Surround add inner word with parenthesessd'- Surround delete quotessr)'- Surround replace parentheses with quotesva)- Visually select around parenthesesyinq- Yank inside next quoteci'- Change inside quotes
In insert mode:
Ctrl+n- Next completion itemCtrl+p- Previous completion itemEnter- Accept completionCtrl+b- Scroll docs backwardCtrl+f- Scroll docs forwardCtrl+Space- Trigger completionCtrl+c- Close completionCtrl+e- Abort completion
Send code from Neovim to TMUX panes. All mappings use localleader (,):
,ml- Send current line (move to next),mL- Send current line (stay in place),mp- Send paragraph,ms- Send selection (visual mode),mc- Configure target pane
Use ,m followed by any vim motion for unlimited flexibility:
,m5j- Send current + 5 lines below,m10k- Send 10 lines up through current,m}- Send to next paragraph,map- Send around paragraph,mG- Send from current to end of file,mgg- Send from current to beginning
,mm- Double-tap to send current line,me- Send from current line to end of file,mb- Send from beginning to current line,mf- Send entire file
,mo+ motion - Use vim-slime's builtin motion operator
:Telescope colorscheme- Browse and switch colorschemes- Current theme: Gruvbox (dark)
:terminal- Open terminal in Neovim<Esc><Esc>- Exit terminal mode
<Esc>- Clear search highlights- Automatic indent detection (guess-indent)
- Indent guides visible
- Git signs in gutter
- Statusline with file info
- Which-key popup for keybinding hints
- Kickstart plugins:
lua/kickstart/plugins/ - Custom plugins:
lua/custom/plugins/
- Jump to a function: Type
s+ first 2 chars of function name - Jump to next occurrence of 'error':
<leader>/then type 'error' - Delete until next parenthesis:
dt( - Change word and jump:
scw+ 2 chars to jump to word, then change
- Use
s(EasyMotion) instead of repeatedhjklmovements - Combine operators with EasyMotion:
ds+ target to delete to a location - Use
<leader><leader>to quickly switch between recent buffers
<leader>sgto search across all files (ripgrep)<leader>swto search for word under cursor globally<leader>/for fuzzy search in current file
- Use
,m+ motion for flexible code sending to TMUX ,m20jto send large code blocks efficiently,mcfirst time to configure target pane,mmfor quick line-by-line code execution
- Run
:checkhealthto diagnose issues - Run
:Lazyto check plugin status - Check
:LspInfofor language server status - Use
:messagesto see recent messages/errors