This repository contains a complete Zed editor configuration with customized vim mode keybindings for enhanced productivity.
mv ~/.config/zed ~/.config/zed.backup# Clone this repository
git clone git@github.com:xicv/zed-config.git
# Create Zed config directory if it doesn't exist
mkdir -p ~/.config/zed
# Copy configuration files
cp zed-config/settings.json ~/.config/zed/
cp zed-config/keymap.json ~/.config/zed/
# Restart Zed to apply changesFor automatic syncing across devices:
# Remove existing config
rm -rf ~/.config/zed
# Create symlink to this repository
ln -s /path/to/zed-config ~/.config/zed- ✅ Vim Mode: Full vim modal editing
- ✅ System Clipboard: Seamless copy/paste integration
- ✅ Relative Line Numbers: For easier vim navigation
- ✅ Git Integration: Inline blame support
- ✅ Telemetry Disabled: Privacy-focused configuration
- UI Font Size: 16px
- Buffer Font Size: 16px
- Terminal Dock: Right side
| Key | Action | Description |
|---|---|---|
jj |
Escape | Quick exit to normal mode |
| Key | Action | Description |
|---|---|---|
Ctrl-n |
Clear Search | Dismiss buffer search highlights |
Space |
Search | Start buffer search (/) |
Shift-K |
Insert Line | Add new line at cursor |
| Key | Action | Description |
|---|---|---|
,a |
Go to Line | Jump to specific line number |
,A |
Go to Line | Jump to specific line number |
,s |
Save | Save current file |
,t |
Outline | Toggle outline/symbol panel |
,f |
Format | Format current document |
,r |
File Finder | Open file finder (duplicate) |
,g |
Find in Files | Project-wide search |
,c |
Terminal | Toggle terminal panel |
,e |
Sidebar | Toggle left sidebar |
,d |
Assistant | Toggle AI assistant chat |
,x |
Code Actions | Show available code actions |
,q |
Hover Info | Show hover information |
,b |
Git Blame | Toggle git blame display |
,w |
Switch Window | Activate next pane/window |
,z |
File Search | Open file finder |
| Key | Action | Description |
|---|---|---|
g d |
Go to Definition | Jump to symbol definition |
g r |
Find References | Find all references |
g h |
Hover | Show hover information |
Edit keymap.json to add custom bindings:
{
"context": "Editor && vim_mode == normal",
"bindings": {
"your_key": "action_name"
}
}vim_mode == insert- Insert mode onlyvim_mode == normal- Normal mode onlyvim_mode == visual- Visual mode onlyEditor && vim_mode- Any vim mode in editor
Common Zed actions you can bind:
file_finder::Toggleworkspace::Saveoutline::Toggleterminal_panel::ToggleFocusproject_search::ToggleFocusassistant::ToggleFocuseditor::Formateditor::GoToDefinitioneditor::FindAllReferencesbuffer_search::Deploybuffer_search::Dismiss
-
Setup on first computer:
cd ~/.config/zed git init git remote add origin git@github.com:xicv/zed-config.git git add . git commit -m "Initial Zed configuration" git push -u origin main
-
Setup on additional computers:
# Remove existing config rm -rf ~/.config/zed # Clone your config git clone git@github.com:xicv/zed-config.git ~/.config/zed
-
Updating configuration:
cd ~/.config/zed # Make changes to settings.json or keymap.json git add . git commit -m "Update configuration" git push # On other computers git pull
- Use Dropbox, iCloud, or Google Drive
- Symlink
~/.config/zedto your cloud folder - Automatic sync across devices
Keybindings not working:
- Restart Zed after configuration changes
- Check syntax in
keymap.json(valid JSON required) - Use command palette to verify action names
Vim mode disabled:
- Ensure
"vim_mode": trueinsettings.json - Toggle vim mode via command palette: "Toggle Vim Mode"
Git integration issues:
- Ensure project is a git repository
- Git blame requires valid git history
- Open command palette (
Cmd/Ctrl + Shift + P) - Run "dev: Open Key Context View"
- Debug problematic key combinations
Feel free to submit issues and pull requests to improve this configuration!
This configuration is provided as-is under MIT License. Feel free to modify and share!