Vim for engineers. ~25 plugins, works over SSH.
--- ```bash curl -fsSL https://raw.githubusercontent.com/m1ngsama/chopsticks/main/get.sh | bash ``` --- ## Why You SSH into a server. You need to edit code. You want LSP, fuzzy find, git integration, format-on-save — not a 20-minute setup. chopsticks gives you a production-ready Vim config in one command. Pure VimScript — no Node.js for the core. Degrades gracefully on TTY. Works the same on your MacBook and your headless Arch box. **24–25 plugins** (tmux-navigator loads only inside tmux), LSP, linting, and a hand-built statusline. No bloat, no decorations, just tools. ## What's in the box | Feature | Description | | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **LSP** | completion, go-to-def, hover, rename, code actions — pure VimScript ([vim-lsp](https://github.com/prabirshrestha/vim-lsp)) | | **Lint + format** | [ALE](https://github.com/dense-analysis/ale) runs black, prettier, goimports, rustfmt on save | | **Fuzzy find** | files, buffers, grep, tags, marks, commands — [FZF](https://github.com/junegunn/fzf.vim) | | **Git** | status, diff, blame, push, pull, conflict markers — [fugitive](https://github.com/tpope/vim-fugitive) + [gitgutter](https://github.com/airblade/vim-gitgutter) | | **Run file** | `,cr` — auto-detects Python, Go, Rust, JS, C, Shell, and more | | **Markdown** | quiet writing defaults, browser preview (`,mp`), table of contents (`,mt`) | | **Diagnostics** | `:ChopsticksStatus` — see what's installed, what's missing, how to fix it | | **TTY-aware** | degrades gracefully on SSH, console, slow links — never breaks | ## Install ```bash curl -fsSL https://raw.githubusercontent.com/m1ngsama/chopsticks/main/get.sh | bash curl -fsSL https://raw.githubusercontent.com/m1ngsama/chopsticks/main/get.sh | bash -s -- --profile=minimal curl -fsSL https://raw.githubusercontent.com/m1ngsama/chopsticks/main/get.sh | bash -s -- --dry-run --profile=full ``` Or manually: ```bash git clone https://github.com/m1ngsama/chopsticks.git ~/.vim cd ~/.vim && ./install.sh --profile=engineer ``` Supports macOS (brew), Debian/Ubuntu (apt), Arch (pacman), Fedora (dnf). Set `CHOPSTICKS_DEST=/absolute/path` before running `get.sh` to install somewhere other than `~/.vim`. First launch installs plugins automatically (30-60s). Restart vim when done. Use `./install.sh --dry-run --profile=full` to inspect the resolved profile and config path without changing files. Use `./install.sh --configure-only --profile=minimal` to switch profiles without reinstalling plugins or tools. ## Profiles Default profile: `engineer`. Interactive installs ask for this profile before plugins are installed; `--profile=minimal`, `--profile=engineer`, or `--profile=full` selects it without prompting. `--yes` keeps the existing local profile or uses `engineer`. ```vim " Put this in ${XDG_CONFIG_HOME:-~/.config}/chopsticks.vim. let g:chopsticks_profile = 'minimal' " core navigation/editing/git/markdown let g:chopsticks_profile = 'engineer' " default: LSP, ALE, syntax extras let g:chopsticks_profile = 'full' " engineer + heavier Markdown feedback let g:chopsticks_enable_jk_escape = 1 " optional: insert-mode jk exits insert let g:chopsticks_enable_ctrl_s_save = 1 " optional: Ctrl-S saves let g:chopsticks_enable_sudo_save_bang = 1 " optional: :w!! sudo save ``` `minimal` avoids LSP, ALE, completion plugins, extra language syntax plugins, Startify, UndoTree, and browser Markdown preview. `full` keeps those and opts into Markdown lint, format, spell, conceal, Marksman, and LSP virtual text. Project updates leave `~/.config/chopsticks.vim` alone, so put local choices there instead of editing the managed `.vimrc`. The `,?` cheat sheet follows the active profile and only shows keys for enabled features. ## Keys Leader: `,` ``` ,ff fuzzy find file ,dd go to definition ,rg ripgrep project ,dk hover docs ,e toggle file sidebar ,cr run current file ,gs git status ,f format ,w save ,q quit Esc exit insert mode ,? cheat sheet ```