# Objective
- I would like to have the Vim command `z z` do different actions
depending on if I have multiple selections. If I only have one selection
I want `z z` to center my only selection (current behavior); however, if
I have multiple selections I would like `z z` to run
`editor::OpenSelectionsInMultibuffer`. This PR does not add this
specific functionality (happy to be convinced otherwise), but it does
let users add this type of functionality.
## Solution
- Add a new key context field that is active only when there are
multiple selections.
## Testing
- Changes are quite small. A test on this would really be testing other
parts of the code-base more than this change.
## Self-Review Checklist:
- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content adheres to Zed's UI standards
([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
and
[icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md)
guidelines)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable
## Showcase
https://github.com/user-attachments/assets/2559e218-d6fa-492a-949b-f4ab8b880f28
This allows us to add something like the following to the `keymap.json`:
```json
{
"context": "VimControl && !menu && multiple_selections",
"bindings": {
"z z": "editor::OpenSelectionsInMultibuffer",
},
},
```
which lets us change the functionality of a keystroke based on if there
are multiple selections.
This video has the following keystroke sequence:
`z z` (Center the cursor normally)
`5 g l` (Select the 5 next occurrences of the word under the cursor)
`z z` (Open selections in multi-buffer) (Previously `z z` in this
context would just center the last selection)
https://github.com/user-attachments/assets/a0dc1813-5420-4cda-a1ec-99e6681680e7
---
Release Notes:
- Added `multiple_selections` keystroke context
Co-authored-by: Lukas Wirth <lukas@zed.dev>
5f180e06dcAidanV committed on 7/31/2026, 6:49:53 AM· committed by GitHubparent2ec2997