# Vim

> Vim text editor with motions, macros, and plugins. Use for terminal editing.

- Skill: `majiayu000/vim` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/vim`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/vim/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/vim

---


# Vim

Vim is the universal text editor installed on every UNIX system. While Neovim innovates, Vim focuses on backward compatibility and stability.

## When to Use

- **SSH / Servers**: It is _always_ there. `vi` usually aliases to `vim`.
- **Stability**: Scripts written in 2005 still work.
- **Resource Constraints**: Runs on embedded routers.

## Core Concepts

### Modes

- **Normal**: Navigation (`hjkl`).
- **Insert**: Typing (`i`, `a`).
- **Visual**: Selection (`v`).
- **Command**: Ex commands (`:w`, `:q`).

### Composability

Operator + Motion = Action.
`d` (delete) + `w` (word) = `dw`.
`c` (change) + `i` (inside) + `"` (quote) = `ci"`.

## Best Practices (2025)

**Do**:

- **Learn the Basics**: `vimtutor` is mandatory for every developer.
- **Use `.vimrc`**: Keep a minimal config for servers (line numbers, syntax on).
- **Use Neovim for IDE**: For daily coding, Neovim is preferred. Use Vim for quick edits.

**Don't**:

- **Don't use arrow keys**: Force yourself to use `hjkl`.

## References

- [Vim Documentation](https://www.vim.org/docs.php)

