This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
zsh [2012/07/05 18:26] hkoller [Globbing] |
zsh [2012/07/05 18:29] (current) hkoller [Globbing] |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | |||
+ | |||
+ | ====== 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 ===== | ||
+ | |||
+ | <code> | ||
+ | #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 | ||
+ | </code> | ||
+ | Now pressing CTRL-f at any time makes the completion show (and suggest) all the files in the directory | ||
+ | |||
+ | |||
+ | ===== Delete Path Elements ===== | ||
+ | <code> | ||
+ | # make ALT+<Backspace> 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 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ===== Misc useful options ===== | ||
+ | |||
+ | <code> | ||
+ | # 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 | ||
+ | |||
+ | |||
+ | </code> | ||
+ | |||
+ | |||
+ | ====== Tips&Tricks ====== | ||
+ | ===== Globbing ===== | ||
+ | |||
+ | See "man 1 zshexpn" for documentation. Some examples: | ||
+ | |||
+ | <code bash > | ||
+ | |||
+ | 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 | ||
+ | |||
+ | </code> | ||
+ | |||
+ | |||
+ | 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 |