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}
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
ls
aftercd
: A function is created to replace thecd
command. Whenevercd
is used to change directories, the function automatically runsls
to display the contents of the new directory.function cd { builtin cd "$@" && ls }
This method applies to
bash
andzsh
, combining thecd
andls
commands.Using
zsh
Hooks forls
aftercd
: A more refined approach specific tozsh
that uses hooks. A function namedls_after_cd
is defined to runls
, and azsh
hook is added to execute this function every time the current working directory changes.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 originalcd
command.