Basic Editing
| Command | macOS | Windows/Linux |
|---|---|---|
| Undo | ⌘ + Z | Ctrl + Z |
| Redo | ⌘ + ⇧ + Z | Ctrl + Shift + Z |
| Copy | ⌘ + C | Ctrl + C |
| Cut | ⌘ + X | Ctrl + X |
| Paste | ⌘ + V | Ctrl + V |
| Save | ⌘ + S | Ctrl + S |
| Select All | ⌘ + A | Ctrl + A |
| Indent | Tab | Tab |
| Outdent | ⇧ + Tab | Shift + Tab |
| Format File | F4 | F4 |
Cursor Movement
| Command | macOS | Windows/Linux |
|---|---|---|
| Move by Character | ←/→ | ←/→ |
| Move by Line | ↑/↓ | ↑/↓ |
| Move by Word | ⌥ + ←/→ | Alt + ←/→ |
| Move by Subword | ⌃ + ⌥ + ←/→ | — |
| Move to Line Start/End | ⌘ + ←/→ | Ctrl + ←/→ |
| Move to Document Start/End | ⌘ + ↑/↓ | Ctrl + ↑/↓ |
Selection
All cursor movement commands can be combined with ⇧ (Shift) to extend the selection:| Command | macOS | Windows/Linux |
|---|---|---|
| Select by Character | ⇧ + ←/→ | Shift + ←/→ |
| Select by Line | ⇧ + ↑/↓ | Shift + ↑/↓ |
| Select by Word | ⇧ + ⌥ + ←/→ | Shift + Alt + ←/→ |
| Select to Line Start/End | ⇧ + ⌘ + ←/→ | Shift + Ctrl + ←/→ |
| Select to Document Start/End | ⇧ + ⌘ + ↑/↓ | Shift + Ctrl + ↑/↓ |
Line Operations
| Command | macOS | Windows/Linux |
|---|---|---|
| Toggle Comment | ⌘ + / | Ctrl + / |
| Insert Line Below | ⌘ + ↩ | Ctrl + Enter |
| Insert Line Above | ⌘ + ⇧ + ↩ | Ctrl + Shift + Enter |
| Move Line(s) Up | ⌥ + ↑ | Alt + ↑ |
| Move Line(s) Down | ⌥ + ↓ | Alt + ↓ |
| Duplicate Line Up | ⇧ + ⌥ + ↑ | Shift + Alt + ↑ |
| Duplicate Line Down | ⇧ + ⌥ + ↓ | Shift + Alt + ↓ |
Multi-Cursor Editing
| Command | macOS | Windows/Linux |
|---|---|---|
| Add Cursor | ⌥ + Click | Alt + Click |
| Select Next Occurrence | ⌘ + D | Ctrl + D |
| Collapse to Single Cursor | Esc | Esc |
Search and Replace
| Command | macOS | Windows/Linux |
|---|---|---|
| Find | ⌘ + F | Ctrl + F |
| Find in Files | ⌘ + ⇧ + F | Ctrl + Shift + F |
| Find Next | ⌘ + G or ↩ | Ctrl + G or Enter |
| Find Previous | ⌘ + ⇧ + G | Ctrl + Shift + G |
| Close Search | Esc | Esc |
- Match Case: Toggle case-sensitive search
- Whole Word: Toggle whole word matching
- Regex: Toggle regular expression mode
Code Navigation
| Command | macOS | Windows/Linux |
|---|---|---|
| Go to Definition | ⌘ + Click | Ctrl + Click |
| File Palette | ⌘ + P | Ctrl + P |
| Command Palette | ⌘ + ⇧ + P | Ctrl + Shift + P |
| Global Search | ⌘ + K | Ctrl + K |
File and Tab Management
| Command | macOS | Windows/Linux |
|---|---|---|
| Close Tab | ⌘ + W | Ctrl + W |
| Previous Tab | ⌘ + ⇧ + [ | Ctrl + Shift + [ |
| Next Tab | ⌘ + ⇧ + ] | Ctrl + Shift + ] |
| Tab Palette Forward | ⌃ + Tab | Ctrl + Tab |
| Tab Palette Backward | ⌃ + ⇧ + Tab | Ctrl + Shift + Tab |
Autocomplete
| Command | macOS | Windows/Linux |
|---|---|---|
| Previous Suggestion | ↑ | ↑ |
| Next Suggestion | ↓ | ↓ |
| Accept Suggestion | ↩ or Tab | Enter or Tab |
| Dismiss | Esc | Esc |
Mouse Actions
| Action | Description |
|---|---|
| Click | Place cursor at click position |
| Double-click | Select the word at click position |
| Click in gutter | Select entire line |
| ⇧ + Click | Extend selection to click position |
| ⌥ + Click | Add additional cursor at click position |
| ⌘ + Hover | Show definition preview for symbol under cursor |
| ⌘ + Click | Go to definition of symbol under cursor |
| Click and drag | Select text by dragging |
| Click and drag in gutter | Select multiple lines |
Auto-Closing Pairs
The editor automatically inserts closing characters for:| Opening | Closing | Notes |
|---|---|---|
{ | } | Curly braces |
[ | ] | Square brackets |
( | ) | Parentheses |
" | " | Double quotes (not inside strings) |
' | ' | Single quotes (not inside strings) |
` | ` | Backticks (not inside strings) |
Surrounding Selection
When text is selected, typing an opening character wraps the selection:| Type | Selection becomes |
|---|---|
{ | {selection} |
[ | [selection] |
( | (selection) |
" | "selection" |
' | 'selection' |
` | `selection` |
< | <selection> |
Auto-Completion for Luau Blocks
When pressing ↩ (Enter) after certain keywords, the editor auto-completes the block structure:| After typing… | Auto-inserts |
|---|---|
function | end on new line |
do | end on new line |
then | end on new line |
else | end on new line |
repeat | until false on new line |
Smart Indentation
- Pressing ↩ (Enter) automatically maintains the current indentation level
- After opening keywords (
function,do,then,else,repeat,{), the next line is indented - ⌫ (Backspace) in the indent region removes a full tab (2 spaces) at a time
- ⌘ + ← (Home) toggles between column 0 and the first non-whitespace character
- Indentation uses 2 spaces (soft tabs)
- Line comments use
--(Luau style)
Diff Mode
When viewing AI-generated changes:| Action | Description |
|---|---|
| Hover over chunk | Shows accept/reject buttons |
| Accept button | Accept the changes in this chunk |
| Reject button | Reject the changes and restore original |
| Accept All | Accept all pending changes |
| Reject All | Reject all pending changes |