-
Notifications
You must be signed in to change notification settings - Fork 0
Modes
HyprVim includes many modes from Vim. The goal is for your muscle memory from Vim to carry over seamlessly.
But some Hyprland and Desktop-specific conveniences were added for a better experience and to handle edgecases.
| Key | Description |
|---|---|
V |
Enter visual mode |
SHIFT+V |
Enter line-wise visual mode |
- Use navigation keys (
h,j,k,l,w,b, etc.) to extend selection - Press
yto yank selection - Press
dto delete selection - Press
cto change selection (delete and enter insert) - Press
gto access G-VISUAL for go commands like (gg,gG,gs,gn, andgi) - Press
ESCto return to NORMAL mode
Note
gs surrounds the selected text with character(s)
gn and gi sends the selected text to Vim/Nvim for editing in NORMAL or INSERT mode, respectively
| Key | Description |
|---|---|
I |
Insert before cursor |
A |
Insert after cursor |
SHIFT+A |
Insert at line end |
SHIFT+I |
Insert at line start |
O |
Open line below |
SHIFT+O |
Open line above |
CTRL+O |
Open line below (Shift+Enter) |
CTRL SHIFT+O |
Open line above (Shift+Enter) |
Tip
In a chat app? Use [CTRL+O] to append a new line without sending your message.
- All keys will pass through except for
ESC. You may type normally, just like in Vim. - Keep in mind, a submap is still active while in INSERT mode. So, only your
bindukeys from Hyprland will work while in a submap. - Press
ESCto return to NORMAL mode.
Note
Learn more about bindu here, to make keybinds global to all submaps.
| Key | Description |
|---|---|
: |
Insert before cursor |
Press : from NORMAL mode to enter COMMAND mode.
Command mode provides powerful window management, workspace navigation, and system control.
| Command | Description |
|---|---|
:w |
Save file (Ctrl+S) |
:wq |
Save and quit |
:q |
Quit window (allows app to prompt for save) |
:q! |
Force quit window (kill immediately) |
:qa |
Quit all windows in current workspace |
:qa! |
Force quit all windows in current workspace |
| Command | Description |
|---|---|
:split, :sp
|
Split window horizontally |
:vsplit, :vsp, :vs
|
Split window vertically |
:only |
Close all other windows (keep current) |
| Command | Description |
|---|---|
:float, :f
|
Toggle floating mode |
:fullscreen, :fs
|
Toggle fullscreen |
:pin |
Pin window to all workspaces |
:center, :c
|
Center floating window |
:pseudo |
Toggle pseudo-tiling |
| Command | Description |
|---|---|
:tabn, :tn
|
Next workspace |
:tabp, :tp
|
Previous workspace |
:ws <num> |
Switch to workspace number (e.g., :ws 3) |
:move <num> |
Move window to workspace (e.g., :move 5) |
| Command | Description |
|---|---|
:reload, :r
|
Reload Hyprland config |
:lock |
Lock screen |
:logout |
Exit Hyprland |
| Command | Description |
|---|---|
:opacity <value> |
Set window opacity 0.0-1.0 (e.g., :opacity 0.8) |
| Command | Description |
|---|---|
:e, :edit
|
Open application launcher |
:term, :t
|
Open terminal |
| Command | Description |
|---|---|
:help, :h
|
Show keybindings help |
:%s, :s
|
Open native find/replace dialog (Ctrl+H) |
Note
%s only opens the native find/replace dialog. Implementing a scripted find/replace is not only unreliable but also less efficient and could break formatting. You may need to [TAB] through the interface or drive the mouse cursor with your keyboard to complete the operation.
:w - Save current file
:wq - Save and close window
:float - Toggle floating mode for current window
:ws 3 - Switch to workspace 3
:move 5 - Move current window to workspace 5
:opacity 0.7 - Set window to 70% opacity
:reload - Reload Hyprland configuration