# Skink vs Vim

> Skink vs Vim: when preinstalled, modal Vim wins, and when a modeless terminal editor with mouse, LSP, git and AI agents built in is the better fit.

Source: https://skink.cc/compare/vim/

Vim is on nearly every Unix-like system already, and its modal editing is fast once learned. Skink is a separate download, but it is modeless, the mouse works out of the box, and language servers, tree-sitter highlighting, git and a terminal tab are built in.

Use Vim when you cannot install anything or you love modes. Use Skink when you can drop one binary in `~/.local/bin` and want an IDE-like editor in the terminal.

## Who should pick Vim

- **It is already there.** On a locked-down server, a container or a rescue shell, `vi` or `vim` is usually present and Skink is not. That alone makes Vim worth knowing.
- **The motions are second nature.** You know the operators and motions and think in them.
- **Plugins and Vimscript.** You need Vim's plugin ecosystem, or scripting, which Skink does not have yet.
- **Maturity.** You want something extremely mature and stable. Skink is alpha.

## Who should pick Skink

- **You only open Vim on servers**, and every time you have to remember how to get out. Skink saves with Ctrl+S and quits with Ctrl+Q.
- **Mouse without setup.** Selection, scrolling and clicks work without editing `.vimrc` or checking `:version` for `+mouse`.
- **IDE features without plugins.** Completion, go to definition, rename and diagnostics, with no plugin manager or LSP plugin to install.
- **Everything next to your file.** A real terminal, git hunks, AI agents and a debugger.

## Feature comparison

| | Skink | Vim |
|---|---|---|
| Editing model | Modeless | Modal |
| Mouse | On, always | Off unless `mouse` is set; `defaults.vim` turns it on when no vimrc exists; needs a `+mouse` build |
| LSP | Built in | Through plugins (for example vim-lsp, coc.nvim) |
| tree-sitter | Built in, 19 languages | No; regex-based syntax files |
| Built-in terminal | Terminal tabs and a dock | `:terminal` (Vim 8.1+) |
| AI agents | ACP client and agent panel | Through plugins |
| Debugger | Built in (DAP) | Termdebug (gdb) or plugins |
| Plugins | None yet | Large ecosystem |
| Works over plain SSH | Yes | Yes |
| Preinstalled | No | Almost everywhere |
| Footprint | Small | Small |
| Maturity | Alpha | Decades |

## Why Vim's mouse often "doesn't work"

Vim reads the mouse only when the `mouse` option is set. The bundled `defaults.vim` sets `mouse=a` in xterm-like terminals, but it is skipped as soon as you have your own `~/.vimrc`. Minimal builds may lack mouse support altogether.

The fix is usually:

```vim
set mouse=a
set ttymouse=sgr
```

The full walkthrough, including tmux and SSH, is in [how to use mouse clicks in Vim and Neovim](https://skink.cc/articles/how-to-use-the-mouse-in-vim/). In Skink there is nothing to set.

## Vim keys and their Skink equivalents

Vim's `:` commands are typed after Ctrl+E. The command line already shows the colon, so you type just `w`, `q` or `e file`.

| Vim | Skink |
|---|---|
| `i`, `a`, `o` then type | Just type |
| `Esc` back to Normal | Not needed. Esc clears selections and extra cursors |
| `:w` | Ctrl+S, or `:w` |
| `:q` / `:qa` | Ctrl+Q, or `:q` / `:qa` |
| `:e file` | Ctrl+O, or `:e file` |
| `:42` | Ctrl+L, then `42` |
| `dd` | Ctrl+K, or Ctrl+X with no selection |
| `yy` / `p` | Ctrl+C with no selection / Ctrl+V |
| `u` / `Ctrl-r` | Ctrl+Z / Ctrl+Y |
| `%` | Ctrl+] |
| `:s/a/b/g` | Ctrl+F, Tab to "Replace with", Enter (or `:replace a b`) |
| `qa` ... `@a` | Ctrl+U to record, Ctrl+J to replay |
| `vipJ`, `:sort` | `:JoinLines`, `:SortLines` |

You can open files the Vim-ish way from the shell too: `skink file.rs:42:7` jumps to line 42, column 7.

Keep using Vim where it is the only option, and install Skink where you work every day:

```sh
curl -fsSL https://skink.cc/install.sh | sh
```

## Over SSH

Both run on the server inside your SSH session. Skink's install needs no sudo, and the Linux builds are static (musl), so they also work on Alpine and other minimal hosts.

Copy in Skink goes to your local clipboard over SSH through OSC 52 by default. In Vim you need a plugin or the newer bundled `osc52` package. See [copy and paste over SSH](https://skink.cc/articles/copy-paste-over-ssh/).

## Try it

```sh
curl -fsSL https://skink.cc/install.sh | sh
skink .
```

Then open [the quick start](https://skink.cc/start/quick-start/). Also see [Skink vs Neovim](https://skink.cc/compare/neovim/) and [how to exit Vim](https://skink.cc/articles/how-to-exit-vim/).
