# 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).