based on https://stackoverflow.com/a/48509425/2654518, which is based on
http://rabexc.org/posts/pitfalls-of-ssh-agents
Current code has a few issues: depends on `SSH_AUTH_SOCK` and
`SSH_AGENT_PID` env variables, which might not be available in every
shell session; and tries to create a new socket for agent-forwarding by
checking `SSH_AUTH_SOCKET` instead of `SSH_AUTH_SOCK`.
Also, it's safer to create the env file with 066 flags and in the user
home directory.
and they were mistakenly inside the Colours scope. Move them out of
there.
Still using the same `(( ${+commands[dircolors]} ))` test because it
works well with MacOS with coreutils installed without the `g` prefix,
for example.
This reverts commit 2f0243e533.
Completion module does not depend on utility module anymore to set the
zstyle list-colors. Making modules independent from each other as much
as possible is a good thing.
As used in other modules. Also easier to document in the comments and
README.
Replace table by bulleted list so it's possible to use `|` in the text
without breaking the Markdown rendering.
Same for the `lx` alias.
Also update the README.md. Replace table by bulleted list so it's
possible to use `|` in the text without breaking the Markdown rendering
(as it did for the table).
For short single commands, prefer a one-liner `for` with the zsh syntax:
```
for x (foo bar) print ${x}
```
Otherwise just place `; do` on the same line as the POSIX `for ... in`:
```
for x in foo bar; do
print ${x}
done
```
Closes#268
mainly to change "command correction prompts" to "spelling correction
prompt for commands" and make it clear that this is related to spelling
(and to the `SPROMPT` below that).
Using `bindkey` is the preferred zsh way to do it.
As far as I checked, also `set -o emacs` defines a less complete set of
key bindings compared to `bindkey -e`.
and use `-F` to check if the feature was not already loaded before.
Use terminfo elements for Backspace and Delete. Sort by terminfo element
keys.
Also simplify code, removing unnecessary double quotes, and replacing
if-then-fi with one command by one-liners.
as `expand-or-complete-with-redisplay` was added to fix an issue
reported with zsh 5.2 when completing with <Tab><Tab><Ctrl-C>. See #85.
Fixes#134. Closes#256
that use the git-branch-delete-interactive function.
Thanks to @Mikachu for helping with the completion function
implementation over the #zsh chat.
Closes#265
* create digest of scripts in a `functions` directory that don't start
with `_` (completion functions) and that don't have a `.` (function
names cannot have that character)
* zrecompile any `.zsh` or `.zsh-theme` file that is not in a `*test*`
directory (see 2a9a003), and that is a plain file with more than 1K of
size.
instead of the fixed logic that was zrecompiling syntax-highlighting and
history-substring-search modules' scripts.
Closes#260
so we have more vertical space for the actual log entries, instead of
having each one separated by a line just with graph lines. Also, this is
the default layout already, see `git log --graph --oneline` for example.
GNU colours are used by the completion module for all `OSTYPE`s, for
colouring the files in the menu. We had lost that for BSD after previous
changes to this module.
First choice is `init.zsh`, the script we use, introduced by Prezto.
Next choices are based on which are the most common init scripts in the
zsh-users repositories:
* `zsh-autosuggestions`, `zsh-history-substring-search` and
`zsh-syntax-highlighting` have `${zmodule}.zsh`
* `zsh-completions` has `${zmodule}.plugin.zsh`
Latter format apparently was introduced by Oh-My-Zsh.
Leaving `${zmodule}.zsh-theme` and `${zmodule}.sh` as the last options.
This will present the menu in case of ambiguous matches, and also expand
by any separator, not just `[._-]`.
Based on the configuration suggested at
https://superuser.com/a/815317/637926Closes#212
To achieve this, we have to make sure that the following is not set:
* `zstyle ':completion:*:default' list-prompt '...'`
otherwise long completion lists will be paginated (without prompting).
The list is considered too long when it's greater than `${LISTMAX}`,
which has a value of 100 by default.
Also remove options being set (or unset) that are already the default,
namely:
* `AUTO_MENU <D>`
* `AUTO_LIST (-9) <D>`
* `MENU_COMPLETE (-Y)`
And remove the space character from the beginning of the messages.
Fixes#136. Closes#248
as there's actually no "brief" format originally in git (by "originally"
I mean the ones listed for `--format=<format>` in `man git-log`).
Also, we already fit in `glG` all the information that `glb` had.
So add `glO`, that is a one-line variant of `glG`.
Now we get nice symmetrical formats in `glg`/`glG` and in `glo`/`glO`.
Rename `gpS` (mnemonic "pretty-signature") and `glS` ("log-signature")
to `gcv` ("commit-verify") and `glv` ("log-verify") respectivelly,
so `v` is used to verify signatures, and `s`/`S` is used to sign.
Remove `git-commit-lost` and `git-stash-dropped`, as this could be
probably joined into one function that shows all lost commits, including
lost stashes, and also because there seems to be many different ways to
do this, as discussed in https://stackoverflow.com/q/89332/2654518.
An answer worth noting is https://stackoverflow.com/a/6455586/2654518.
If someone is using this, let's discuss on a new solution...
Remove Oh-My-Zsh compatibility from `git-branch-current`, and delete
`git_current_branch`. This compatibility was already partially broken at
c1b02c0, when we also updated the gitster prompt theme. Now this
function fails when in 'detached HEAD' state (is was returning the
commit hash in this state), which is what we would expect from the use
we make of it.
Closes#244
“unrar-free returns the error code 1 when run without arguments, thus
failing the presence check.” as reported at sorin-ionescu/prezto#1383
Reformat code and use one-liners instead of if/then/fi. And we don’t
need to separate local definitions from assignments anymore starting
from zsh 5.2.
since we don't need that. We're using the newer '%F{red}color%f' code
instead.
Also use `PS1` instead of `PROMPT`, as suggested at `man zshcontrib`,
under "Writing Themes”.
Refactor code.
that prompts if upstream remote branch(es) should be deleted too. As
with `git branch`, the function supports multiple branches as params,
and also the `-r`/`--remotes` param. Update `gbx` and `gbX` to use this
function.
Also update `git-stash-clear-interactive` to have multiple tests instead
of multiple nested `if`/`then`/`fi`. (Simpler syntax, IMHO)
and to have a help and a preview too.
Inspired by #192, and by having (few but) good prompt themes to serve as
starting points for the users to customize or implement their own.
Also removed the colors functions, since we don't need that. We're using
the newer '%F{red}color%f' code instead. (Actually all our themes are)
Closes#245