Ctl-U to delete everything on the line before cursor.
Ctl-E to skip to end of line.
Ctl-A to skip to beginning of line.
Kids these days….
These Ctrl keys are shortcuts from Emacs - there’s a Bash settings to switch to vi-mode if you so wish. Anyway, the first Emacs was written in 1981, probably on a PDP-11, which did not have Home and End! Same reason Neovim uses “yank” instead of “copy”. ctrl-c
/ctrl-v
did not exist as a shortcut back when vi was being written!
I know you didn’t intend to be mean or anything, but maaaaaan kids these days don’t know their history (not entirely your fault, btw)😆
This tip is super useful to me because not everyone is using a PC. On a PC sure, I would use the Home and End keys all the time. Now I’m using a laptop as my main computer and the Home and End keys are in a weird position that even to this day, 4ish years of laptop use, I still have to actually look at the keys to find them.
That’s horrible for muscle memory, every time I switch desk/keyboard I have to re-learn the position of the home/end/delete/PgUp/PgDn keys.
I got used to Ctrl-a
/ Ctrl-e
and it became second nature, my hands don’t have to fish for extra keys, to the point that it becomes annoying when a program does not support that. Some map Ctrl-a
to “Select all” so, for input fields where the selection is one line, I’d rather Ctrl-a
then left
/right
to go to the beginning/end than fish for home
/end
, wherever they are.
ctrl-b: move cursor back one character
ctrl-f: move cursor foward one character
ctrl-d: delete character under cursor
If you’re a VIM motions fan, you can always install the zsh-vi-mode: https://github.com/jeffreytse/zsh-vi-mode.
Alt-delete
deletes the whole word before cursorAlt-d
deletes the whole word after cursorCtrl-k
deletes (kill) everything after the cursor
Whatever is deleted is stored in the “killring” and can be pasted(yanked) back with Ctrl-y
(like someone else already mentioned), consecutive uses of Alt-delete
/Alt-d
add to the killring.
Alt-b
/Alt-f
moves one word backwards / forwardsAlt-t
swaps (translocates) the current word with the previous oneCtrl-_
undo last edit operation
All those bindings are the same as in emacs.
Also, normally Ctrl-d
inserts the end-of-file character, and typically can be used to close an active shell session or when you have some other interpreter open in the terminal for interactive input.