-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
Pre-built packages are published automatically on every release:
Option A — .deb package (recommended for Ubuntu/Debian)
sudo dpkg -i vimcode_*.deb
sudo apt -f install # pulls in any missing GTK4 runtime librariesRequires Ubuntu 24.04+ or any distro with GTK 4.10+.
Option B — raw binary
# Install runtime dependencies:
sudo apt install libgtk-4-1 libglib2.0-0 libpango-1.0-0 libcairo2
# Then run:
chmod +x vimcode-linux-x86_64
./vimcode-linux-x86_64Option C — Flatpak
flatpak install vimcode.flatpak
flatpak run io.github.jdonaghy.VimCodeThe Flatpak bundles GTK4 and all dependencies — works on any Linux distro with Flatpak installed.
Note: Ubuntu 22.04 ships GTK 4.6 which is too old for the
.deband raw binary; use the Flatpak or upgrade to 24.04+.
Prerequisites — GTK4 development libraries (TUI mode works without GTK4):
| Platform | Install command |
|---|---|
| Ubuntu/Debian | sudo apt install libgtk-4-dev build-essential pkg-config |
| Fedora | sudo dnf install gtk4-devel gcc pkg-config |
| Arch | sudo pacman -S gtk4 base-devel pkgconf |
| openSUSE | sudo zypper install gtk4-devel gcc pkg-config |
| macOS | brew install gtk4 pkg-config |
| Windows (MSYS2) | pacman -S mingw-w64-x86_64-gtk4 mingw-w64-x86_64-pkgconf mingw-w64-x86_64-gcc |
Platform notes:
- macOS: GTK4 works via Homebrew; this is not a native AppKit app
-
Windows: Use the MSYS2 MinGW64 shell and set
rustup default stable-x86_64-pc-windows-gnu
cargo build
cargo run -- <file> # GTK window
cargo run -- --tui <file> # Terminal UI (alias: -t)
cargo run -- --tui --debug /tmp/v.log # TUI with debug logRun vimcode or vimcode <file> to open the GTK window. You'll see:
- Activity bar (left edge) — icons for Explorer, Search, Git, Debug, Extensions, AI, Settings
- File explorer (sidebar) — tree view of the current directory
- Editor area — syntax-highlighted code with line numbers
- Status bar (bottom) — mode indicator, file info, cursor position, git branch
Run vimcode --tui or vimcode -t to run in the terminal. Same features, different renderer. The layout mirrors the GTK version with activity bar, sidebar, and editor area rendered in the terminal.
VimCode starts in Normal mode (Vim mode) or Edit mode (VSCode mode, if configured).
| Mode | How to enter | Purpose |
|---|---|---|
| Normal | Escape |
Navigation, commands, operators |
| Insert |
i, a, o, etc. |
Text entry |
| Visual |
v (char), V (line), Ctrl-V (block) |
Selection |
| Command | : |
Ex commands |
| Search |
/ or ?
|
Find text |
Press Alt-M at any time to toggle between Vim mode and VSCode mode.
| Key | Action |
|---|---|
hjkl |
Move cursor |
i / Escape
|
Enter / exit Insert mode |
:w |
Save |
:q |
Quit (close tab) |
:wq |
Save and quit |
dd |
Delete line |
yy |
Yank (copy) line |
p |
Paste |
u / Ctrl-R
|
Undo / redo |
/pattern |
Search |
Ctrl-P |
Fuzzy file finder |
Ctrl-T |
Toggle terminal |
Ctrl-B |
Toggle sidebar |
| Key | Action |
|---|---|
Ctrl-S |
Save |
Ctrl-Z / Ctrl-Y
|
Undo / redo |
Ctrl-C / Ctrl-X / Ctrl-V
|
Copy / cut / paste |
Ctrl-A |
Select all |
Ctrl-/ |
Toggle comment |
Ctrl-P |
Fuzzy file finder |
F1 / Ctrl-Shift-P
|
Command palette |
Ctrl-G |
Go to line |
Alt-M |
Switch to Vim mode |
vimcode file.rs # Open a single file
vimcode . # Open current directory
vimcode /path/to/project # Open a project folderOr from within VimCode:
-
:e <file>— open a file -
:OpenFolder <path>— open a directory as workspace root -
Ctrl-P— fuzzy file finder
When you open a file for a language without an LSP server, VimCode shows:
No Python Language Support extension — :ExtInstall python (N to dismiss)
Run :ExtInstall python (or the suggested extension name) to install. Extensions are fetched from the vimcode-ext registry.
Browse available extensions: click the extensions icon (bottom of the activity bar) or run :ExtList.
- Key Remapping — customize your keybindings
- Settings Reference — configure the editor
- LSP Configuration — language server setup
- DAP Debugger Setup — debugging configuration