81 lines
1.2 KiB
ReStructuredText
81 lines
1.2 KiB
ReStructuredText
|
.. raw:: pdf
|
||
|
|
||
|
PageBreak titlePage
|
||
|
|
||
|
.. class:: centredtitle
|
||
|
|
||
|
Z Shell
|
||
|
|
||
|
.. raw:: pdf
|
||
|
|
||
|
PageBreak standardPage
|
||
|
|
||
|
Why zsh?
|
||
|
========
|
||
|
|
||
|
* Replacement for the ``bash`` shell
|
||
|
* Default on macOS
|
||
|
* Separate to "oh-my-zsh"
|
||
|
* OMZSH plugins and themes can be installed using ``zplug``
|
||
|
* Aliases
|
||
|
* Globbing and expanding
|
||
|
|
||
|
Aliases
|
||
|
=======
|
||
|
|
||
|
.. code-block:: bash
|
||
|
:linenos:
|
||
|
:include: code/aliases.sh
|
||
|
|
||
|
.. raw:: pdf
|
||
|
|
||
|
TextAnnotation "Can be used to override default behaviour or to add new commands and shortcuts."
|
||
|
|
||
|
Globbing and expanding
|
||
|
======================
|
||
|
|
||
|
Changing a file prefix:
|
||
|
|
||
|
``mv index.{html,twig}``
|
||
|
|
||
|
``mv index.html index.twig``
|
||
|
|
||
|
|
|
||
|
|
||
|
Creating two files with different prefixes:
|
||
|
|
||
|
``touch my-component.{config.yml,twig}``
|
||
|
|
||
|
|
|
||
|
|
||
|
Creating a range of files:
|
||
|
|
||
|
``touch {1..10}.php``
|
||
|
|
||
|
Auto-expanding
|
||
|
==============
|
||
|
|
||
|
.. code-block:: bash
|
||
|
:linenos:
|
||
|
|
||
|
expand-alias-space() {
|
||
|
[[ $LBUFFER =~ "\<(''${(j:|:)baliases})\$" ]]; insertBlank=$?
|
||
|
if [[ ! $LBUFFER =~ "\<(''${(j:|:)ialiases})\$" ]]; then
|
||
|
zle _expand_alias
|
||
|
fi
|
||
|
|
||
|
zle self-insert
|
||
|
|
||
|
if [[ "$insertBlank" = "0" ]]; then
|
||
|
zle backward-delete-char
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
zle -N expand-alias-space
|
||
|
|
||
|
bindkey " " expand-alias-space
|
||
|
|
||
|
.. raw:: pdf
|
||
|
|
||
|
TextAnnotation "More like snippets than aliases."
|