====== Config ====== zsh is very nice and powerful. Here are some things to put into your .zshrc ===== Make the completion show all files in a directory ===== #turns the key \C-x F into a command complete-file #(which goes straight to the completion system's file completion command, ignoring the normal context) zle -C complete-file complete-word _generic zstyle ':completion:complete-file::::' completer _files bindkey '^F' complete-file Now pressing CTRL-f at any time makes the completion show (and suggest) all the files in the directory ===== Delete Path Elements ===== # make ALT+ delete backwards until last slash (very useful when editing paths) backward-delete-to-slash () { local WORDCHARS=${WORDCHARS//\//} zle .backward-delete-word } zle -N backward-delete-to-slash bindkey "^[^?" backward-delete-to-slash ===== Misc useful options ===== # Allow comments in interactive shell setopt interactivecomments # Say how long a command took, if it took more than 30 seconds export REPORTTIME=30 # Prompts for confirmation after 'rm *' etc ...Helps avoid mistakes like 'rm * o' when 'rm *.o' was intended setopt RM_STAR_WAIT # Don’t nice background processes setopt NO_BG_NICE # Watch other user login/out watch=notme export LOGCHECK=60 # make every cd command also a pushd setopt autopushd ====== Tips&Tricks ====== ===== Globbing ===== See "man 1 zshexpn" for documentation. Some examples: vi **/muh.txt # edit muh.txt no matter in which subdirectory it hides echo *(oL) # sort directory contents by size echo *(om) # sort directory contents by modification time echo **/*(F) # list full directories echo **/*(/^F) # list empty directories (NOT full) echo *(m4) # list files modified exactly 4 days ago more examples: https://www.evernote.com/shard/s9/note/d6443525-ad9a-4468-8696-29dd68f9010d/wishi/crazylazy#b=5370c944-5bb8-45c1-b73a-cfe46216db32&n=d6443525-ad9a-4468-8696-29dd68f9010d