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}
story
If you want just the file name minus the path:
$ myfile=/path/to/story.txt
$ echo ${myfile:t}
story.txt
Check this out you can combine those two symbols!
$ myfile=/path/to/story.txt
$ echo ${myfile:t:r}
story
Hooks
-
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-hook
ls_after_cd() { ls }
add-zsh-hook chpwd ls_after_cd
\`\``This approach is more aligned with`zsh`practices, allowing for the automatic listing of directory contents upon navigation without altering the original`cd\`
command.