Rewrite install.sh from a tool-listing script into an actual installer.
Tools are now installed automatically in grouped, prompted steps.
New sections:
- System tools (ripgrep, fzf, ctags, shellcheck, marksman)
macOS: brew | Debian/Ubuntu: apt | Fedora: dnf
marksman on Linux: auto-downloads binary from GitHub releases
- npm tools (prettier, markdownlint-cli, stylelint,
stylelint-config-standard, eslint, typescript, sqlfmt)
- Python tools (black, isort, flake8, pylint, sqlfluff)
- Go tools (gopls, goimports)
Adds GOPATH/bin to PATH for the session; warns if not in shell profile
- CoC language server extensions (unchanged, now last step)
Other changes:
- --yes flag for non-interactive/CI installs
- try_install / pip_install / npm_install / go_install helpers with
already-installed detection to avoid redundant reinstalls
- End-of-run summary: Installed / Skipped / Failed lists
- Symlink step now always points to $SCRIPT_DIR/.vimrc (the repo),
ensuring the right version is always linked regardless of clone path
This commit addresses multiple issues discovered during code review:
1. Fix variable definition order in .vimrc
- Move g:is_tty and g:has_true_color definitions to top of file
- Previously used at line 32 but defined at line 263
- Ensures variables are available before first use
2. Remove duplicate configuration settings in .vimrc
- Remove duplicate set number, wildmenu, ruler
- Remove duplicate search settings (ignorecase, smartcase, hlsearch, incsearch)
- Remove duplicate backspace and wildignore settings
- Reduces file size and eliminates confusion
3. Enhance install.sh reliability
- Add directory validation to ensure script runs from ~/.vim
- Add symlink validation after creation
- Fix CoC installation command syntax (vim -c to vim +)
- Move helper functions before usage
- Prevents symlink-to-self errors
4. Improve installation documentation
- Add warnings in README.md about running from correct directory
- Add IMPORTANT notes in QUICKSTART.md
- Update installation step descriptions
- Prevents common user installation mistakes
These fixes improve installation reliability and prevent configuration errors.
Changes:
- Replaced checkmarks with plain text in README.md
- Replaced emoji icons with [OK] in install.sh
- Changed ALE error/warning signs from unicode to ASCII (X and !)
- Removed rocket emoji from QUICKSTART.md
- All output now uses simple ASCII characters
Follows KISS (Keep It Simple, Stupid) principle for better:
- Terminal compatibility
- Accessibility
- Readability in all environments
- No font dependencies