zsh
Functions
Default arguments
Example of a function with default arguments in zsh
function e() {
if [ "$1" != "" ]
then
subl $1
else
subl .
fi
}File name without the extension
If you want the full path without the extension:
$ myfile=/path/to/story.txt
$ echo ${myfile:r}
/path/to/story
$ myfile=story.txt
$ echo ${myfile:r}
storyIf you want just the file name minus the path:
$ myfile=/path/to/story.txt
$ echo ${myfile:t}
story.txtCheck this out you can combine those two symbols!
$ myfile=/path/to/story.txt
$ echo ${myfile:t:r}
storyHooks
Automatic
lsaftercd: A function is created to replace thecdcommand. Whenevercdis used to change directories, the function automatically runslsto display the contents of the new directory.zsh function cd { builtin cd "$@" && ls }This method applies tobashandzsh, combining thecdandlscommands.Using
zshHooks forlsaftercd: A more refined approach specific tozshthat uses hooks. A function namedls_after_cdis defined to runls, and azshhook is added to execute this function every time the current working directory changes. ```zsh autoload -U add-zsh-hookls_after_cd() { ls }
add-zsh-hook chpwd ls_after_cd ``
This approach is more aligned withzshpractices, allowing for the automatic listing of directory contents upon navigation without altering the originalcd` command.