# Shell Keybindings
## Navigation đ
| Keybinding | Action |
| -------------------------------- | ------------------------------------------------------------ |
| Alt + f/b | Move cursor to previous/next word |
| Ctrl + a/e | Move cursor to beginning/end of command |
| Ctrl + xx | Toggle between the start of line and current cursor position |
## Editing âī¸
| Keybinding | Action |
| ------------------------------------- | --------------------------------------------------- |
| Alt + . or `!$` | Previous commands last argument |
| Alt + c | Capitalize word |
| Alt + d | Delete next word |
| Alt + Del | Delete previous word |
| Alt + l/u | Lowercase/Uppercase word |
| Alt + r | Cancel the changes, revert |
| Alt + t | Swap current word with previous |
| Alt + w | Delete until beginning (zsh) |
| Ctrl + \_ | Undo |
| Ctrl + k | Cut till end |
| Ctrl + t | Swap the last two characters before the cursor |
| Ctrl + u | Delete whole line (zsh)/ cut until beginning (bash) |
| Ctrl + w | Cut previous word |
| Ctrl + x,e | Open command in editor |
| Ctrl + y | Paste |
| Esc + t | Swap the last two words before the cursor |
| `!*` | All arguments of previous command |
## Process đ
| Keybinding | Action |
| ------------------------------ | ------------------------- |
| Ctrl + c | Interrupt/Kill |
| Ctrl + d | Close current shell |
| Ctrl + l | Clear screen |
| Ctrl + z | Background/Foreground job |
## History âŗ
| Keybinding | Action |
| ------------------------------ | -------------------------------------------- |
| Ctrl + r | History search |
| Ctrl + s | Go back to the next most recent command |
| `^abc^def` | Run previous command, replacing abc with def |
## Modes đšī¸
| Keybinding | Action |
| -------------------------------- | ------------- |
| Ctrl + x,v | vi mode (zsh) |
| `bindkey -e` | Emacs mode |
| `set -o vi` / `bindkey -v` | Vi mode |
GitHub gist [here](https://gist.github.com/9c6d607e160b0439a186d4fbd1bd81df).