* `build` is an alias which on first use invokes `build-dir --build` to
select a build directory, reconfigure the `build` alias, and invoke
the `build` alias on the selected build directory.
* `debug` is an alias to the installed system native debugger.
* `build-dir` is a function to select a build directory by reconfiguring
the `build` alias, it detects `build.ninja` or `Makefile` in the build
directory and selects the appropriate `ninja` or `make` command.
Depends on the `build-dir.py` Python script which uses the `pick`
package to interactively select the build directory.
* `build-run` is a function which builds the specified target then
attempts to run it, making the assumption it resides in the `bin`
subdirectory of the build directory.
* `build-debug` is a function which build the specified tared then
attempts to debug it using the system native debugger, making the
assumption it resides in the `bin` subdirectory of the build
directory.
Add ccache symlink directory to start of PATH, this must be after
`typeset -U PATH` because on macOS this reorders the list so ccache's
symlinks will no longer be at the start of PATH rendering it unusable.
From experimenting `unsetopt flow_control` seems to only disable flow
control for Zsh itself, not for child processes like Vim. To fix the
issue also call `stty -ixon` to disable flow control completely.
Fixes#8
Depends on setting the following in `.tmux.conf`:
set -ga terminal-overrides '*:Ss=\E]1337;CursorShape=%p1%d\7'
This allows changing the iTerm2 cursor shape using the same escape
sequences as used for VTE compatible terminals.
Sending escape sequences directly from zsh and bypassing tmux results in
the wrong cursor shape when switching between panes which no longer
reflect the current zsh vi mode.
When using ZTE compatible terminals tmux supports tracking cursor shape
changes on a per pane basis using a suitable `terminal-override`, this
allows zsh and vim to behave as if they are not operating in tmux and
everything works as expected. However, so far I've not been able to
reproduce this behaviour in iTerm2.