How macvim-dev/macvim works
MacVim is Vim’s editing engine presented through a native macOS GUI. The main user path is launching the app, opening or editing files in Vim, and interacting with the result in native windows. The repository also includes distinct search, scripting, terminal-emulation, and diff capabilities. The README documents major macOS GUI features; source excerpts are limited, so unverified connections between internal subsystems are omitted or marked dashed.
Main entry points: src Editing core · MMAppController.h MacVim app · gui.c Native GUI · main.c Vim startup
Components 14
macOS application
- MacVim app
src/MacVim/MMAppController.h - Native GUI
src/gui.c - GUI tabs
src/tabpanel.c - Software updates
src/MacVim/Sparkle_2.framework/Versions/B/Headers/SPUStandardUpdaterController.h
Vim editing engine
- Vim startup
src/main.c - Editing core
src - Buffers and files
src/buffer.c - Command processing
src/ex_docmd.c - Search
src/search.c - Vim scripting
src/eval.c
Terminal support
- Terminal UI
src/terminal.c - Terminal parser
src/libvterm/src/parser.c
Comparison tools
- Diff engine
src/xdiff/xdiffi.c
Other components
- Mac user
Connections 13
- Mac user → MacVim app: launches
README.md - MacVim app → Vim startup: starts Vim
- Vim startup → Editing core: initializes
src/main.c - Editing core → Buffers and files: edits files
- Editing core → Command processing: processes commands
- Editing core → Search: searches text
src/search.c - Editing core → Vim scripting: evaluates scripts
- MacVim app → Native GUI: presents GUI
README.md - Native GUI → GUI tabs: provides tabs
README.md - Editing core → Diff engine: compares files
src/xdiff/xdiffi.c - Editing core → Terminal UI: supports terminal
- Terminal UI → Terminal parser: parses terminal input
- MacVim app → Software updates: offers updates