Personal Neovim configuration built on LazyVim with a focused, minimal setup.
- Base: LazyVim + lazy.nvim
- Plugins: catppuccin, trouble.nvim, nvim-cmp, telescope.nvim, nvim-lspconfig, nvim-treesitter, lualine.nvim, Comment.nvim, lazydev.nvim, vim-be-good, lazygit.nvim, OmniSharp (cross-platform config)
- Languages: Lua, Python, C/C++, C#, TypeScript/TSX, JavaScript, JSON, XML, YAML, Bash, HTML, Markdown, Vimscript
- ArduPilot:
clangd+ Treesitter for C/C++, Python support forwscript,.parm/.paramdetection, and./wafterminal keymaps - PX4:
clangdroot detection for PX4 repos, CMake LSP (cmake-language-server), and SITL build/run terminal keymaps - Formatting:
clang-format(C/C++),ruff_format/black(Python),prettierd(JSON/XML) viaconform.nvim
- Backup any existing Neovim config.
- Place this repo at the appropriate config path:
- macOS/Linux:
~/.config/nvim - Windows:
%LOCALAPPDATA%\nvim
- macOS/Linux:
- Start Neovim and let lazy.nvim install plugins.
- Tooling is managed via Mason (see
lua/plugins/mason.lua). - Formatting is configured in
lua/plugins/formatting.lua. - Git (LazyGit) keymaps:
<leader>gg: open LazyGit<leader>gF: current file history in LazyGit<leader>gf: filter LazyGit to current file<leader>gC: open LazyGit config
- SSH and tunneling commands:
:SSHTerm user@host: open SSH terminal in a split:TunnelLocal <name> <local_port> <remote_host> <remote_port> [ssh_host]: local port forward (-L):TunnelRemote <name> <remote_port> <local_host> <local_port> [ssh_host]: remote port forward (-R):TunnelSocks <name> <local_port> <ssh_host>: dynamic SOCKS proxy (-D):TunnelStop <name>: stop a running tunnel by name
- SSH/tunnel leader shortcuts (command prefill):
<leader>ss::SSHTerm<leader>sl::TunnelLocal<leader>sr::TunnelRemote<leader>sd::TunnelSocks<leader>sx::TunnelStop
- ArduPilot keymaps:
<leader>ac:./waf configure --board sitl<leader>ab:./waf copter<leader>as:./waf copter --run
- PX4 keymaps:
<leader>pb:make px4_sitl_default<leader>ps:PX4_SIM_MODEL=iris make px4_sitl_default gazebo