.vimrc:
- Wrap all loose autocmds in named augroups with autocmd! (prevents
doubling on :source $MYVIMRC): ChopstickTabHistory, ChopstickResize,
ChopstickStdin, CocHighlight, ChopstickCleanup, ChopstickFiletype,
ChopstickTTYLargeFile, ChopstickWhichKey, ChopstickStartify
install.sh:
- Add Arch Linux (pacman) branch for system tools
- Add hadolint to system tools (brew/apt binary download/pacman)
- Add staticcheck to Go tools
- Add yamllint to pip tools
- Remove sqlfmt from npm (SQL unified to sqlfluff via pip)
- Remove coc-marksman (package does not exist on npm)
- Add coc-settings.json symlink step with backup
- Add pip3 bootstrap when python3 present but pip3 absent
- Fix PlugInstall and CocInstall to use </dev/null (TTY-safe)
coc-settings.json:
- New file: configures marksman as Markdown LSP server for CoC
(replaces the broken coc-marksman npm package approach)
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