====== bash / zsh ======
===== untilfail script =====
Repeatedly run a command until failure ([[https://stackoverflow.com/questions/12967232/repeatedly-run-a-shell-command-until-it-fails|source]])
#!/bin/bash
while "$@"; do :; done
===== Bash prompt =====
Esc . : Repeat last param
Ctrl U : Cut backwards
Ctrl K : Cut forwards
Ctrl W : Cut previous word
Ctrl Y : Paste
Ctrl V : Verbatim / Insert literal control characters
Ctrl D / Esc D : Cut current character
Ctrl H : Cut prev character
Ctrl I / Tab : Autocomplete
Ctrl _ / Ctrl X, Ctrl U : Undo
Ctrl T : Swap characters before cursor
Esc T : Swap words before cursor
Esc C : Capitalize current character and move to end of the word
Esc F : Forward 1 word
Esc B : Backward 1 word
Ctrl A : Go to line start
Ctrl E : Go to line end
Ctrl F : Forward 1 character
Ctrl B : Back 1 character
Ctrl XX : Toggle between positions in a line
Ctrl R : Search history
Ctrl L : Clear screen
Ctrl C : Kill running command
!! : Run previous command
! : Run last command starting with
!:p : Display last command starting with
! : Run nth command in history
!^ : First arg of last command
!$ : Last arg of last command
^find^replace^ : Substitute in last command and run
===== bash Other =====
bind -p # List keymap in bash
===== zsh Other =====
bindkey # List keymap in zsh for main (emacs/viins)
zle -al # List of all commands to use in bindings
bindkey -e # emacs mode
bindkey -v # vi mode