,,,
.' `/\_/\
.' <@I@>
<(((((((((( )____( \./
\( \( \(\(
`-"`-" " "
Your new coding pet ^^
A minimal, opinionated Vim configuration for web development (but not only). Auto-configures Vim with useful defaults on first launch. Minimal on purpose — it's a starting point. Make your own Racoon pet. It's just Vim.
# 1. Clone
git clone https://github.com/AndiKod/racoon.vim ~/.vim
# 2. (optional) Bootstrap — installs LSP servers + Prettier via npm
bash ~/.vim/racoon-bootstrap.sh
# 3. Launch Vim
vimVimPlug auto-installs itself and all plugins on first launch.
The bootstrap script is just a convenience. You don't have to use it — if you already have the servers, or prefer pnpm / bun / yarn, install them manually (see ## LSP Servers below). Racoon only needs the binaries in your $PATH.
Requirements: Vim 9+, Node.js + a package manager (npm / pnpm / bun / yarn), internet connection (one-time).
- LSP — vim-lsp + asyncomplete (go-to-definition, hover docs, diagnostics)
- Completion — asyncomplete (LSP + buffer words + file paths, auto-popup, no account needed)
- Linting & Formatting — ALE with Prettier (fix on save)
- AI Completion — GitHub Copilot (toggle with
<leader>ct) - Fuzzy Finding — fzf.vim (files, git files, history, buffers, lines)
- File Browsing — NERDTree
- Buffer Management — vim-buftabline + Tab/S-Tab cycling
- Status Bar — vim-airline with Catppuccin Mocha
- Git — vim-fugitive
- Commenting — vim-commentary
- Surroundings — vim-surround
- CSS Color Preview — vim-css-color
- Emmet — HTML/CSS expansion
- Auto Pairs — auto-close brackets/quotes
- Start Screen — vim-startify with raccoon header
- Terminal — built-in
:term/:vert ter
| Category | Plugins |
|---|---|
| LSP & Completion | vim-lsp, asyncomplete.vim, asyncomplete-lsp.vim, asyncomplete-file.vim, asyncomplete-buffer.vim |
| Linting & Formatting | dense-analysis/ale |
| AI | github/copilot.vim |
| Editing | vim-surround, vim-commentary, vim-fugitive, auto-pairs, emmet-vim |
| UI | vim-buftabline, fzf, fzf.vim, vim-airline, catppuccin, vim-css-color, vim-transparent, vim-startify, nerdtree |
Managed by VimPlug. Use :PlugInstall, :PlugUpdate, :PlugClean to manage. All plugins are installed by default (opt-out: comment the Plug line in vimrc, then :PlugClean).
Racoon expects these binaries in your $PATH:
| Language | Package(s) | Provides |
|---|---|---|
| TypeScript/JavaScript | typescript-language-server + typescript |
typescript-language-server |
| CSS/HTML/JSON | vscode-langservers-extracted |
vscode-css-language-server, vscode-html-language-server, vscode-json-language-server |
| Bash | bash-language-server |
bash-language-server |
| Formatting (JS/TS/CSS/HTML/JSON) | prettier |
prettier |
Install with your preferred manager:
npm:
npm i -g typescript-language-server typescript vscode-langservers-extracted bash-language-server prettierpnpm:
pnpm add -g typescript-language-server typescript vscode-langservers-extracted bash-language-server prettierbun:
bun add -g typescript-language-server typescript vscode-langservers-extracted bash-language-server prettieryarn (classic):
yarn global add typescript-language-server typescript vscode-langservers-extracted bash-language-server prettierCheck with:
command -v typescript-language-server prettier bash-language-server; echo okNote:
shfmt(used by ALE forshfiles) is not on npm. Install viago install mvdan.cc/sh/v3/cmd/shfmt@latestorapt/brew install shfmt.
To add more servers, install them globally the same way and register in vim-lsp. See vim-lsp docs.
Works out of the box, offline, no account:
- Start typing → popup appears (LSP + buffer words + file paths)
<Tab>/<S-Tab>→ next / previous item in popup<CR>→ confirm selection<C-u>→ expand Emmet (e.g.div.list>ul>li*3)
GitHub Copilot is installed for AI completion.
To activate:
- Run
:Copilot setupand follow the GitHub device auth flow - Toggle on/off with
<leader>ct
To fully opt-out, comment Plug 'github/copilot.vim' in vimrc, then :PlugClean.
<Leader> = Space
| Binding | Action |
|---|---|
jj |
Escape (from insert mode) |
<C-s> |
Save + format (ALEFix) |
<Esc> |
Remove search highlight |
<C-h/j/k/l> |
Navigate splits |
gcc |
Toggle comment the line |
> / < |
Indent keeping selection |
<leader>ev / <leader>sv |
Edit / source vimrc |
| Binding | Action |
|---|---|
<C-n> |
Toggle NERDTree |
<leader>n |
Focus NERDTree |
<C-f> |
Find current file in NERDTree |
? |
From inside the NERDTree sidebar: Commands List |
Note: Files explorer will auto-close when a file is selected.
Extra command :Nroot — open tree at project root (git/hg/svn...).
| Binding | Action |
|---|---|
<leader>ff |
Find files |
<leader>fg |
Find git files |
<leader>fh |
File history |
<leader>sb |
Search open buffers |
<leader>sl |
Search content of all open buffers |
<leader>sc |
Search current buffer |
| Binding | Action |
|---|---|
<Tab> / <S-Tab> (insert, popup open) |
Next / previous completion item |
<CR> (insert, popup open) |
Confirm completion |
<C-u> |
Expand Emmet abbreviation |
gd |
Go to definition |
gy |
Go to type definition |
gi |
Go to implementation |
gr |
Find references |
[g / ]g |
Previous / next diagnostic |
K |
Show documentation |
| Binding | Action |
|---|---|
<Tab> / <S-Tab> (normal) |
Next / previous buffer |
<leader>b |
List buffers |
<leader>x |
Close buffer |
<leader>t / <leader>tv |
Terminal (horizontal / vertical) |
<leader>s |
Open Startify |
<leader>ct |
Copilot toggle |
<leader>tt |
Transparency toggle |
General Vim settings organized in sections: indentation, display, backup, navigation, wildmenu, FzF. See the vimrc for details and customize to your needs.
Resources:
Transparency is enabled by default. Toggle it:
<leader>tt— toggle transparency on/off
To disable permanently, remove or comment out let g:transparent_enabled = v:true in the vimrc.
To adjust transparency levels, see :help transparent.
It's just Vim. Add plugins to the plug#begin() block, add mappings in the MAPPINGS section, tweak options in the OPTIONS section. The vimrc is organized with folds ({{{ / }}}) — use <za> to toggle.
Raccoon ASCII art by ejm from ascii.co.uk