mirror of
https://github.com/DazAh/dotfiles
synced 2026-05-21 18:25:46 +01:00
test
This commit is contained in:
@@ -0,0 +1,3 @@
|
|||||||
|
[user]
|
||||||
|
email ="{{ .email }}"
|
||||||
|
name ="{{ .name }}"
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
#compdef chezmoi
|
||||||
|
_arguments \
|
||||||
|
'1: :->level1' \
|
||||||
|
'2: :->level2' \
|
||||||
|
'3: :->level3' \
|
||||||
|
'4: :_files'
|
||||||
|
case $state in
|
||||||
|
level1)
|
||||||
|
case $words[1] in
|
||||||
|
chezmoi)
|
||||||
|
_arguments '1: :(add apply archive cat cd chattr completion data diff doctor dump edit edit-config forget help import init merge remove secret source source-path unmanaged update upgrade verify)'
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
_arguments '*: :_files'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
level2)
|
||||||
|
case $words[2] in
|
||||||
|
secret)
|
||||||
|
_arguments '2: :(bitwarden generic keepassxc keyring lastpass onepassword pass vault)'
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
_arguments '*: :_files'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
level3)
|
||||||
|
case $words[3] in
|
||||||
|
keyring)
|
||||||
|
_arguments '3: :(get set)'
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
_arguments '*: :_files'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
_arguments '*: :_files'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
+1048
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,2 @@
|
|||||||
|
export PATH="$HOME/.cargo/bin:$PATH"
|
||||||
|
export KWIN_DRM_USE_EGL_STREAMS=1
|
||||||
@@ -0,0 +1,117 @@
|
|||||||
|
# If you come from bash you might have to change your $PATH.
|
||||||
|
# export PATH=$HOME/bin:/usr/local/bin:$PATH
|
||||||
|
#
|
||||||
|
# Dev tools export
|
||||||
|
export PATH="$HOME/.cargo/bin:$PATH"
|
||||||
|
export PATH="$HOME/.dotnet:$PATH"
|
||||||
|
|
||||||
|
# Path to your oh-my-zsh installation.
|
||||||
|
export ZSH="/home/darren/.oh-my-zsh"
|
||||||
|
|
||||||
|
#Dotnet Disable telematry
|
||||||
|
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||||
|
|
||||||
|
|
||||||
|
# Set name of the theme to load --- if set to "random", it will
|
||||||
|
# load a random theme each time oh-my-zsh is loaded, in which case,
|
||||||
|
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
||||||
|
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
|
||||||
|
ZSH_THEME="agnoster"
|
||||||
|
|
||||||
|
# Set list of themes to pick from when loading at random
|
||||||
|
# Setting this variable when ZSH_THEME=random will cause zsh to load
|
||||||
|
# a theme from this variable instead of looking in ~/.oh-my-zsh/themes/
|
||||||
|
# If set to an empty array, this variable will have no effect.
|
||||||
|
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
|
||||||
|
|
||||||
|
# Uncomment the following line to use case-sensitive completion.
|
||||||
|
# CASE_SENSITIVE="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to use hyphen-insensitive completion.
|
||||||
|
# Case-sensitive completion must be off. _ and - will be interchangeable.
|
||||||
|
# HYPHEN_INSENSITIVE="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to disable bi-weekly auto-update checks.
|
||||||
|
# DISABLE_AUTO_UPDATE="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to change how often to auto-update (in days).
|
||||||
|
# export UPDATE_ZSH_DAYS=13
|
||||||
|
|
||||||
|
# Uncomment the following line to disable colors in ls.
|
||||||
|
# DISABLE_LS_COLORS="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to disable auto-setting terminal title.
|
||||||
|
# DISABLE_AUTO_TITLE="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to enable command auto-correction.
|
||||||
|
# ENABLE_CORRECTION="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to display red dots whilst waiting for completion.
|
||||||
|
# COMPLETION_WAITING_DOTS="true"
|
||||||
|
|
||||||
|
# Uncomment the following line if you want to disable marking untracked files
|
||||||
|
# under VCS as dirty. This makes repository status check for large repositories
|
||||||
|
# much, much faster.
|
||||||
|
# DISABLE_UNTRACKED_FILES_DIRTY="true"
|
||||||
|
|
||||||
|
# Uncomment the following line if you want to change the command execution time
|
||||||
|
# stamp shown in the history command output.
|
||||||
|
# You can set one of the optional three formats:
|
||||||
|
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
||||||
|
# or set a custom format using the strftime function format specifications,
|
||||||
|
# see 'man strftime' for details.
|
||||||
|
# HIST_STAMPS="mm/dd/yyyy"
|
||||||
|
|
||||||
|
# Would you like to use another custom folder than $ZSH/custom?
|
||||||
|
# ZSH_CUSTOM=/path/to/new-custom-folder
|
||||||
|
|
||||||
|
# Which plugins would you like to load?
|
||||||
|
# Standard plugins can be found in ~/.oh-my-zsh/plugins/*
|
||||||
|
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
|
||||||
|
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||||
|
# Add wisely, as too many plugins slow down shell startup.
|
||||||
|
plugins=(git npm fd docker-compose docker zsh-autosuggestions)
|
||||||
|
|
||||||
|
source $ZSH/oh-my-zsh.sh
|
||||||
|
# User configuration
|
||||||
|
|
||||||
|
# export MANPATH="/usr/local/man:$MANPATH"
|
||||||
|
|
||||||
|
# You may need to manually set your language environment
|
||||||
|
# export LANG=en_US.UTF-8
|
||||||
|
|
||||||
|
# Preferred editor for local and remote sessions
|
||||||
|
if [[ -n $SSH_CONNECTION ]]; then
|
||||||
|
export EDITOR='vim'
|
||||||
|
else
|
||||||
|
export EDITOR='nvim'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Compilation flags
|
||||||
|
# export ARCHFLAGS="-arch x86_64"
|
||||||
|
|
||||||
|
# ssh
|
||||||
|
# export SSH_KEY_PATH="~/.ssh/rsa_id"
|
||||||
|
|
||||||
|
# Set personal aliases, overriding those provided by oh-my-zsh libs,
|
||||||
|
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
|
||||||
|
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
|
||||||
|
# For a full list of active aliases, run `alias`.
|
||||||
|
#
|
||||||
|
|
||||||
|
#Custom Alias
|
||||||
|
alias zshconfig="vim ~/.zshrc"
|
||||||
|
alias musicsync="~/.musicsync.sh"
|
||||||
|
alias ls="exa --group-directories-first --classify --git"
|
||||||
|
alias cat="bat"
|
||||||
|
alias find="fd"
|
||||||
|
alias fv='vim $(fzf --height 40%)'
|
||||||
|
alias vim='nvim'
|
||||||
|
alias ohmyzsh="vim ~/.oh-my-zsh"
|
||||||
|
|
||||||
|
#
|
||||||
|
#Completions (rustup, chezmoi?,)
|
||||||
|
fpath+=~/.zfunc
|
||||||
|
|
||||||
|
#starship rust shell
|
||||||
|
eval "$(starship init zsh)"
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
# Contributor Covenant Code of Conduct
|
||||||
|
|
||||||
|
## Our Pledge
|
||||||
|
|
||||||
|
In the interest of fostering an open and welcoming environment, we as
|
||||||
|
contributors and maintainers pledge to making participation in our project and
|
||||||
|
our community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
||||||
|
level of experience, education, socio-economic status, nationality, personal
|
||||||
|
appearance, race, religion, or sexual identity and orientation.
|
||||||
|
|
||||||
|
## Our Standards
|
||||||
|
|
||||||
|
Examples of behavior that contributes to creating a positive environment
|
||||||
|
include:
|
||||||
|
|
||||||
|
* Using welcoming and inclusive language
|
||||||
|
* Being respectful of differing viewpoints and experiences
|
||||||
|
* Gracefully accepting constructive criticism
|
||||||
|
* Focusing on what is best for the community
|
||||||
|
* Showing empathy towards other community members
|
||||||
|
|
||||||
|
Examples of unacceptable behavior by participants include:
|
||||||
|
|
||||||
|
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||||
|
advances
|
||||||
|
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||||
|
* Public or private harassment
|
||||||
|
* Publishing others' private information, such as a physical or electronic
|
||||||
|
address, without explicit permission
|
||||||
|
* Other conduct which could reasonably be considered inappropriate in a
|
||||||
|
professional setting
|
||||||
|
|
||||||
|
## Our Responsibilities
|
||||||
|
|
||||||
|
Project maintainers are responsible for clarifying the standards of acceptable
|
||||||
|
behavior and are expected to take appropriate and fair corrective action in
|
||||||
|
response to any instances of unacceptable behavior.
|
||||||
|
|
||||||
|
Project maintainers have the right and responsibility to remove, edit, or
|
||||||
|
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||||
|
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||||
|
permanently any contributor for other behaviors that they deem inappropriate,
|
||||||
|
threatening, offensive, or harmful.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies within all project spaces, and it also applies when
|
||||||
|
an individual is representing the project or its community in public spaces.
|
||||||
|
Examples of representing a project or community include using an official
|
||||||
|
project e-mail address, posting via an official social media account, or acting
|
||||||
|
as an appointed representative at an online or offline event. Representation of
|
||||||
|
a project may be further defined and clarified by project maintainers.
|
||||||
|
|
||||||
|
## Enforcement
|
||||||
|
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported by contacting the project team at ohmyzsh@planetargon.com. All
|
||||||
|
complaints will be reviewed and investigated and will result in a response that
|
||||||
|
is deemed necessary and appropriate to the circumstances. The project team is
|
||||||
|
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||||
|
Further details of specific enforcement policies may be posted separately.
|
||||||
|
|
||||||
|
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||||
|
faith may face temporary or permanent repercussions as determined by other
|
||||||
|
members of the project's leadership.
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||||
|
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||||
|
|
||||||
|
[homepage]: https://www.contributor-covenant.org
|
||||||
|
|
||||||
|
For answers to common questions about this code of conduct, see
|
||||||
|
https://www.contributor-covenant.org/faq
|
||||||
@@ -0,0 +1,125 @@
|
|||||||
|
# CONTRIBUTING GUIDELINES
|
||||||
|
|
||||||
|
Oh-My-Zsh is a community-driven project. Contribution is welcome, encouraged, and appreciated.
|
||||||
|
It is also essential for the development of the project.
|
||||||
|
|
||||||
|
First, please take a moment to review our [code of conduct](CODE_OF_CONDUCT.md).
|
||||||
|
|
||||||
|
These guidelines are an attempt at better addressing the huge amount of pending
|
||||||
|
issues and pull requests. Please read them closely.
|
||||||
|
|
||||||
|
Foremost, be so kind as to [search](#use-the-search-luke). This ensures any contribution
|
||||||
|
you would make is not already covered.
|
||||||
|
|
||||||
|
* [Issues](#reporting-issues)
|
||||||
|
* [You have a problem](#you-have-a-problem)
|
||||||
|
* [You have a suggestion](#you-have-a-suggestion)
|
||||||
|
* [Pull Requests](#submitting-pull-requests)
|
||||||
|
* [Getting started](#getting-started)
|
||||||
|
* [You have a solution](#you-have-a-solution)
|
||||||
|
* [You have an addition](#you-have-an-addition)
|
||||||
|
* [Information sources (_aka_ search)](#use-the-search-luke)
|
||||||
|
|
||||||
|
**BONUS:** [Volunteering](#you-have-spare-time-to-volunteer)
|
||||||
|
|
||||||
|
## Reporting Issues
|
||||||
|
|
||||||
|
### You have a problem
|
||||||
|
|
||||||
|
Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
|
||||||
|
your problem.
|
||||||
|
|
||||||
|
If you find one, comment on it so we can know there are more people experiencing it.
|
||||||
|
|
||||||
|
If not, look at the [Troubleshooting](https://github.com/robbyrussell/oh-my-zsh/wiki/Troubleshooting)
|
||||||
|
page for instructions on how to gather data to better debug your problem.
|
||||||
|
|
||||||
|
Then, you can go ahead and create an issue with as much detail as you can provide.
|
||||||
|
It should include the data gathered as indicated above, along with:
|
||||||
|
|
||||||
|
1. How to reproduce the problem
|
||||||
|
2. What the correct behavior should be
|
||||||
|
3. What the actual behavior is
|
||||||
|
|
||||||
|
Please copy to anyone relevant (_eg_ plugin maintainers) by mentioning their GitHub handle
|
||||||
|
(starting with `@`) in your message.
|
||||||
|
|
||||||
|
We will do our very best to help you.
|
||||||
|
|
||||||
|
### You have a suggestion
|
||||||
|
|
||||||
|
Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
|
||||||
|
your suggestion.
|
||||||
|
|
||||||
|
If you find one, comment on it so we can know there are more people supporting it.
|
||||||
|
|
||||||
|
If not, you can go ahead and create an issue. Please copy to anyone relevant (_eg_ plugin
|
||||||
|
maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
|
||||||
|
|
||||||
|
## Submitting Pull Requests
|
||||||
|
|
||||||
|
### Getting started
|
||||||
|
|
||||||
|
You should be familiar with the basics of
|
||||||
|
[contributing on GitHub](https://help.github.com/articles/using-pull-requests) and have a fork
|
||||||
|
[properly set up](https://github.com/robbyrussell/oh-my-zsh/wiki/Contribution-Technical-Practices).
|
||||||
|
|
||||||
|
You MUST always create PRs with _a dedicated branch_ based on the latest upstream tree.
|
||||||
|
|
||||||
|
If you create your own PR, please make sure you do it right. Also be so kind as to reference
|
||||||
|
any issue that would be solved in the PR description body,
|
||||||
|
[for instance](https://help.github.com/articles/closing-issues-via-commit-messages/)
|
||||||
|
_"Fixes #XXXX"_ for issue number XXXX.
|
||||||
|
|
||||||
|
### You have a solution
|
||||||
|
|
||||||
|
Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
|
||||||
|
your [problem](#you-have-a-problem), and any pending/merged/rejected PR covering your solution.
|
||||||
|
|
||||||
|
If the solution is already reported, try it out and +1 the pull request if the
|
||||||
|
solution works ok. On the other hand, if you think your solution is better, post
|
||||||
|
it with a reference to the other one so we can have both solutions to compare.
|
||||||
|
|
||||||
|
If not, then go ahead and submit a PR. Please copy to anyone relevant (e.g. plugin
|
||||||
|
maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
|
||||||
|
|
||||||
|
### You have an addition
|
||||||
|
|
||||||
|
Please [do not](https://github.com/robbyrussell/oh-my-zsh/wiki/Themes#dont-send-us-your-theme-for-now)
|
||||||
|
send themes for now.
|
||||||
|
|
||||||
|
Please be so kind as to [search](#use-the-search-luke) for any pending, merged or rejected Pull Requests
|
||||||
|
covering or related to what you want to add.
|
||||||
|
|
||||||
|
If you find one, try it out and work with the author on a common solution.
|
||||||
|
|
||||||
|
If not, then go ahead and submit a PR. Please copy to anyone relevant (_eg_ plugin
|
||||||
|
maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
|
||||||
|
|
||||||
|
For any extensive change, _eg_ a new plugin, you will have to find testers to +1 your PR.
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
## Use the Search, Luke
|
||||||
|
|
||||||
|
_May the Force (of past experiences) be with you_
|
||||||
|
|
||||||
|
GitHub offers [many search features](https://help.github.com/articles/searching-github/)
|
||||||
|
to help you check whether a similar contribution to yours already exists. Please search
|
||||||
|
before making any contribution, it avoids duplicates and eases maintenance. Trust me,
|
||||||
|
that works 90% of the time.
|
||||||
|
|
||||||
|
You can also take a look at the [FAQ](https://github.com/robbyrussell/oh-my-zsh/wiki/FAQ)
|
||||||
|
to be sure your contribution has not already come up.
|
||||||
|
|
||||||
|
If all fails, your thing has probably not been reported yet, so you can go ahead
|
||||||
|
and [create an issue](#reporting-issues) or [submit a PR](#submitting-pull-requests).
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
### You have spare time to volunteer
|
||||||
|
|
||||||
|
Very nice!! :)
|
||||||
|
|
||||||
|
Please have a look at the [Volunteer](https://github.com/robbyrussell/oh-my-zsh/wiki/Volunteers)
|
||||||
|
page for instructions on where to start and more.
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2009-2019 Robby Russell and contributors
|
||||||
|
See the full list at https://github.com/robbyrussell/oh-my-zsh/contributors
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@@ -0,0 +1,306 @@
|
|||||||
|
<p align="center">
|
||||||
|
<img src="https://s3.amazonaws.com/ohmyzsh/oh-my-zsh-logo.png" alt="Oh My Zsh">
|
||||||
|
</p>
|
||||||
|
|
||||||
|
Oh My Zsh is an open source, community-driven framework for managing your [zsh](https://www.zsh.org/) configuration.
|
||||||
|
|
||||||
|
Sounds boring. Let's try again.
|
||||||
|
|
||||||
|
__Oh My Zsh will not make you a 10x developer...but you may feel like one.__
|
||||||
|
|
||||||
|
Once installed, your terminal shell will become the talk of the town _or your money back!_ With each keystroke in your command prompt, you'll take advantage of the hundreds of powerful plugins and beautiful themes. Strangers will come up to you in cafés and ask you, _"that is amazing! are you some sort of genius?"_
|
||||||
|
|
||||||
|
Finally, you'll begin to get the sort of attention that you have always felt you deserved. ...or maybe you'll use the time that you're saving to start flossing more often. 😬
|
||||||
|
|
||||||
|
To learn more, visit [ohmyz.sh](https://ohmyz.sh) and follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter.
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
|
||||||
|
* A Unix-like operating system: macOS, Linux, BSD. On Windows: WSL is preferred, but cygwin or msys also mostly work.
|
||||||
|
* [Zsh](https://www.zsh.org) should be installed (v4.3.9 or more recent). If not pre-installed (run `zsh --version` to confirm), check the following instructions here: [Installing ZSH](https://github.com/robbyrussell/oh-my-zsh/wiki/Installing-ZSH)
|
||||||
|
* `curl` or `wget` should be installed
|
||||||
|
* `git` should be installed
|
||||||
|
|
||||||
|
### Basic Installation
|
||||||
|
|
||||||
|
Oh My Zsh is installed by running one of the following commands in your terminal. You can install this via the command-line with either `curl` or `wget`.
|
||||||
|
|
||||||
|
#### via curl
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### via wget
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sh -c "$(wget -O- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Manual inspection
|
||||||
|
|
||||||
|
It's a good idea to inspect the install script from projects you don't yet know. You can do
|
||||||
|
that by downloading the install script first, looking through it so everything looks normal,
|
||||||
|
then running it:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
curl -Lo install.sh https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh
|
||||||
|
sh install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Using Oh My Zsh
|
||||||
|
|
||||||
|
### Plugins
|
||||||
|
|
||||||
|
Oh My Zsh comes with a shitload of plugins to take advantage of. You can take a look in the [plugins](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins) directory and/or the [wiki](https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins) to see what's currently available.
|
||||||
|
|
||||||
|
#### Enabling Plugins
|
||||||
|
|
||||||
|
Once you spot a plugin (or several) that you'd like to use with Oh My Zsh, you'll need to enable them in the `.zshrc` file. You'll find the zshrc file in your `$HOME` directory. Open it with your favorite text editor and you'll see a spot to list all the plugins you want to load.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
vi ~/.zshrc
|
||||||
|
```
|
||||||
|
|
||||||
|
For example, this might begin to look like this:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
plugins=(
|
||||||
|
git
|
||||||
|
bundler
|
||||||
|
dotenv
|
||||||
|
osx
|
||||||
|
rake
|
||||||
|
rbenv
|
||||||
|
ruby
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
_Note that the plugins are separated by whitespace. **Do not** use commas between them._
|
||||||
|
|
||||||
|
#### Using Plugins
|
||||||
|
|
||||||
|
Most plugins (should! we're working on this) include a __README__, which documents how to use them.
|
||||||
|
|
||||||
|
### Themes
|
||||||
|
|
||||||
|
We'll admit it. Early in the Oh My Zsh world, we may have gotten a bit too theme happy. We have over one hundred themes now bundled. Most of them have [screenshots](https://github.com/robbyrussell/oh-my-zsh/wiki/Themes) on the wiki. Check them out!
|
||||||
|
|
||||||
|
#### Selecting a Theme
|
||||||
|
|
||||||
|
_Robby's theme is the default one. It's not the fanciest one. It's not the simplest one. It's just the right one (for him)._
|
||||||
|
|
||||||
|
Once you find a theme that you'd like to use, you will need to edit the `~/.zshrc` file. You'll see an environment variable (all caps) in there that looks like:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
ZSH_THEME="robbyrussell"
|
||||||
|
```
|
||||||
|
|
||||||
|
To use a different theme, simply change the value to match the name of your desired theme. For example:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
ZSH_THEME="agnoster" # (this is one of the fancy ones)
|
||||||
|
# see https://github.com/robbyrussell/oh-my-zsh/wiki/Themes#agnoster
|
||||||
|
```
|
||||||
|
|
||||||
|
_Note: many themes require installing the [Powerline Fonts](https://github.com/powerline/fonts) in order to render properly._
|
||||||
|
|
||||||
|
Open up a new terminal window and your prompt should look something like this:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
In case you did not find a suitable theme for your needs, please have a look at the wiki for [more of them](https://github.com/robbyrussell/oh-my-zsh/wiki/External-themes).
|
||||||
|
|
||||||
|
If you're feeling feisty, you can let the computer select one randomly for you each time you open a new terminal window.
|
||||||
|
|
||||||
|
|
||||||
|
```shell
|
||||||
|
ZSH_THEME="random" # (...please let it be pie... please be some pie..)
|
||||||
|
```
|
||||||
|
|
||||||
|
And if you want to pick random theme from a list of your favorite themes:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
ZSH_THEME_RANDOM_CANDIDATES=(
|
||||||
|
"robbyrussell"
|
||||||
|
"agnoster"
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Advanced Topics
|
||||||
|
|
||||||
|
If you're the type that likes to get their hands dirty, these sections might resonate.
|
||||||
|
|
||||||
|
### Advanced Installation
|
||||||
|
|
||||||
|
Some users may want to manually install Oh My Zsh, or change the default path or other settings that
|
||||||
|
the installer accepts (these settings are also documented at the top of the install script).
|
||||||
|
|
||||||
|
#### Custom Directory
|
||||||
|
|
||||||
|
The default location is `~/.oh-my-zsh` (hidden in your home directory)
|
||||||
|
|
||||||
|
If you'd like to change the install directory with the `ZSH` environment variable, either by running
|
||||||
|
`export ZSH=/your/path` before installing, or by setting it before the end of the install pipeline
|
||||||
|
like this:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
ZSH="$HOME/.dotfiles/oh-my-zsh" sh install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Unattended install
|
||||||
|
|
||||||
|
If you're running the Oh My Zsh install script as part of an automated install, you can pass the
|
||||||
|
flag `--unattended` to the `install.sh` script. This will have the effect of not trying to change
|
||||||
|
the default shell, and also won't run `zsh` when the installation has finished.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" "" --unattended
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Installing from a forked repository
|
||||||
|
|
||||||
|
The install script also accepts these variables to allow installation of a different repository:
|
||||||
|
|
||||||
|
- `REPO` (default: `robbyrussell/oh-my-zsh`): this takes the form of `owner/repository`. If you set
|
||||||
|
this variable, the installer will look for a repository at `https://github.com/{owner}/{repository}`.
|
||||||
|
|
||||||
|
- `REMOTE` (default: `https://github.com/${REPO}.git`): this is the full URL of the git repository
|
||||||
|
clone. You can use this setting if you want to install from a fork that is not on GitHub (GitLab,
|
||||||
|
Bitbucket...) or if you want to clone with SSH instead of HTTPS (`git@github.com:user/project.git`).
|
||||||
|
|
||||||
|
_NOTE: it's incompatible with setting the `REPO` variable. This setting will take precedence._
|
||||||
|
|
||||||
|
- `BRANCH` (default: `master`): you can use this setting if you want to change the default branch to be
|
||||||
|
checked out when cloning the repository. This might be useful for testing a Pull Request, or if you
|
||||||
|
want to use a branch other than `master`.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
REPO=apjanke/oh-my-zsh BRANCH=edge sh install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Manual Installation
|
||||||
|
|
||||||
|
##### 1. Clone the repository:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
|
||||||
|
```
|
||||||
|
|
||||||
|
##### 2. *Optionally*, backup your existing `~/.zshrc` file:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
cp ~/.zshrc ~/.zshrc.orig
|
||||||
|
```
|
||||||
|
|
||||||
|
##### 3. Create a new zsh configuration file
|
||||||
|
|
||||||
|
You can create a new zsh config file by copying the template that we have included for you.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
|
||||||
|
```
|
||||||
|
|
||||||
|
##### 4. Change your default shell
|
||||||
|
|
||||||
|
```shell
|
||||||
|
chsh -s $(which zsh)
|
||||||
|
```
|
||||||
|
|
||||||
|
You must log out from your user session and log back in to see this change.
|
||||||
|
|
||||||
|
##### 5. Initialize your new zsh configuration
|
||||||
|
|
||||||
|
Once you open up a new terminal window, it should load zsh with Oh My Zsh's configuration.
|
||||||
|
|
||||||
|
### Installation Problems
|
||||||
|
|
||||||
|
If you have any hiccups installing, here are a few common fixes.
|
||||||
|
|
||||||
|
* You _might_ need to modify your `PATH` in `~/.zshrc` if you're not able to find some commands after
|
||||||
|
switching to `oh-my-zsh`.
|
||||||
|
* If you installed manually or changed the install location, check the `ZSH` environment variable in
|
||||||
|
`~/.zshrc`.
|
||||||
|
|
||||||
|
### Custom Plugins and Themes
|
||||||
|
|
||||||
|
If you want to override any of the default behaviors, just add a new file (ending in `.zsh`) in the `custom/` directory.
|
||||||
|
|
||||||
|
If you have many functions that go well together, you can put them as a `XYZ.plugin.zsh` file in the `custom/plugins/` directory and then enable this plugin.
|
||||||
|
|
||||||
|
If you would like to override the functionality of a plugin distributed with Oh My Zsh, create a plugin of the same name in the `custom/plugins/` directory and it will be loaded instead of the one in `plugins/`.
|
||||||
|
|
||||||
|
## Getting Updates
|
||||||
|
|
||||||
|
By default, you will be prompted to check for upgrades every few weeks. If you would like `oh-my-zsh` to automatically upgrade itself without prompting you, set the following in your `~/.zshrc`:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
DISABLE_UPDATE_PROMPT=true
|
||||||
|
```
|
||||||
|
|
||||||
|
To disable automatic upgrades, set the following in your `~/.zshrc`:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
DISABLE_AUTO_UPDATE=true
|
||||||
|
```
|
||||||
|
|
||||||
|
### Manual Updates
|
||||||
|
|
||||||
|
If you'd like to upgrade at any point in time (maybe someone just released a new plugin and you don't want to wait a week?) you just need to run:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
upgrade_oh_my_zsh
|
||||||
|
```
|
||||||
|
|
||||||
|
Magic! 🎉
|
||||||
|
|
||||||
|
## Uninstalling Oh My Zsh
|
||||||
|
|
||||||
|
Oh My Zsh isn't for everyone. We'll miss you, but we want to make this an easy breakup.
|
||||||
|
|
||||||
|
If you want to uninstall `oh-my-zsh`, just run `uninstall_oh_my_zsh` from the command-line. It will remove itself and revert your previous `bash` or `zsh` configuration.
|
||||||
|
|
||||||
|
## How do I contribute to Oh My Zsh?
|
||||||
|
|
||||||
|
Before you participate in our delightful community, please read the [code of conduct](CODE_OF_CONDUCT.md).
|
||||||
|
|
||||||
|
I'm far from being a [Zsh](https://www.zsh.org/) expert and suspect there are many ways to improve – if you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests!
|
||||||
|
|
||||||
|
We also need people to test out pull-requests. So take a look through [the open issues](https://github.com/robbyrussell/oh-my-zsh/issues) and help where you can.
|
||||||
|
|
||||||
|
See [Contributing](CONTRIBUTING.md) for more details.
|
||||||
|
|
||||||
|
### Do NOT send us themes
|
||||||
|
|
||||||
|
We have (more than) enough themes for the time being. Please add your theme to the [external themes](https://github.com/robbyrussell/oh-my-zsh/wiki/External-themes) wiki page.
|
||||||
|
|
||||||
|
## Contributors
|
||||||
|
|
||||||
|
Oh My Zsh has a vibrant community of happy users and delightful contributors. Without all the time and help from our contributors, it wouldn't be so awesome.
|
||||||
|
|
||||||
|
Thank you so much!
|
||||||
|
|
||||||
|
## Follow Us
|
||||||
|
|
||||||
|
We're on the social media.
|
||||||
|
|
||||||
|
* [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter. You should follow it.
|
||||||
|
* [Oh My Zsh](https://www.facebook.com/Oh-My-Zsh-296616263819290/) on Facebook.
|
||||||
|
|
||||||
|
## Merchandise
|
||||||
|
|
||||||
|
We have [stickers, shirts, and coffee mugs available](https://shop.planetargon.com/collections/oh-my-zsh?utm_source=github) for you to show off your love of Oh My Zsh. Again, you will become the talk of the town!
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
Oh My Zsh is released under the [MIT license](LICENSE.txt).
|
||||||
|
|
||||||
|
## About Planet Argon
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Oh My Zsh was started by the team at [Planet Argon](https://www.planetargon.com/?utm_source=github), a [Ruby on Rails development agency](https://www.planetargon.com/skills/ruby-on-rails-development?utm_source=github). Check out our [other open source projects](https://www.planetargon.com/open-source?utm_source=github).
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
charset = utf-8
|
||||||
|
|
||||||
|
[*.sh]
|
||||||
|
indent_size = 4
|
||||||
|
indent_style = tab
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# custom files
|
||||||
|
custom/
|
||||||
|
|
||||||
|
# temp files directories
|
||||||
|
cache/
|
||||||
|
log/
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
LAST_EPOCH=18171
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
###-begin-npm-completion-###
|
||||||
|
#
|
||||||
|
# npm command completion script
|
||||||
|
#
|
||||||
|
# Installation: npm completion >> ~/.bashrc (or ~/.zshrc)
|
||||||
|
# Or, maybe: npm completion > /usr/local/etc/bash_completion.d/npm
|
||||||
|
#
|
||||||
|
|
||||||
|
if type complete &>/dev/null; then
|
||||||
|
_npm_completion () {
|
||||||
|
local words cword
|
||||||
|
if type _get_comp_words_by_ref &>/dev/null; then
|
||||||
|
_get_comp_words_by_ref -n = -n @ -n : -w words -i cword
|
||||||
|
else
|
||||||
|
cword="$COMP_CWORD"
|
||||||
|
words=("${COMP_WORDS[@]}")
|
||||||
|
fi
|
||||||
|
|
||||||
|
local si="$IFS"
|
||||||
|
IFS=$'\n' COMPREPLY=($(COMP_CWORD="$cword" \
|
||||||
|
COMP_LINE="$COMP_LINE" \
|
||||||
|
COMP_POINT="$COMP_POINT" \
|
||||||
|
npm completion -- "${words[@]}" \
|
||||||
|
2>/dev/null)) || return $?
|
||||||
|
IFS="$si"
|
||||||
|
if type __ltrim_colon_completions &>/dev/null; then
|
||||||
|
__ltrim_colon_completions "${words[cword]}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
complete -o default -F _npm_completion npm
|
||||||
|
elif type compdef &>/dev/null; then
|
||||||
|
_npm_completion() {
|
||||||
|
local si=$IFS
|
||||||
|
compadd -- $(COMP_CWORD=$((CURRENT-1)) \
|
||||||
|
COMP_LINE=$BUFFER \
|
||||||
|
COMP_POINT=0 \
|
||||||
|
npm completion -- "${words[@]}" \
|
||||||
|
2>/dev/null)
|
||||||
|
IFS=$si
|
||||||
|
}
|
||||||
|
compdef _npm_completion npm
|
||||||
|
elif type compctl &>/dev/null; then
|
||||||
|
_npm_completion () {
|
||||||
|
local cword line point words si
|
||||||
|
read -Ac words
|
||||||
|
read -cn cword
|
||||||
|
let cword-=1
|
||||||
|
read -l line
|
||||||
|
read -ln point
|
||||||
|
si="$IFS"
|
||||||
|
IFS=$'\n' reply=($(COMP_CWORD="$cword" \
|
||||||
|
COMP_LINE="$line" \
|
||||||
|
COMP_POINT="$point" \
|
||||||
|
npm completion -- "${words[@]}" \
|
||||||
|
2>/dev/null)) || return $?
|
||||||
|
IFS="$si"
|
||||||
|
}
|
||||||
|
compctl -K _npm_completion npm
|
||||||
|
fi
|
||||||
|
###-end-npm-completion-###
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
# Add your own custom plugins in the custom/plugins directory. Plugins placed
|
||||||
|
# here will override ones with the same name in the main plugins directory.
|
||||||
+106
@@ -0,0 +1,106 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
## v0.6.3
|
||||||
|
- Fixed bug moving cursor to end of buffer after accepting suggestion (#453)
|
||||||
|
|
||||||
|
## v0.6.2
|
||||||
|
- Fixed bug deleting the last character in the buffer in vi mode (#450)
|
||||||
|
- Degrade gracefully when user doesn't have `zsh/system` module installed (#447)
|
||||||
|
|
||||||
|
## v0.6.1
|
||||||
|
- Fixed bug occurring when `_complete` had been aliased (#443)
|
||||||
|
|
||||||
|
## v0.6.0
|
||||||
|
- Added `completion` suggestion strategy powered by completion system (#111)
|
||||||
|
- Allow setting `ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE` to an empty string (#422)
|
||||||
|
- Don't fetch suggestions after copy-earlier-word (#439)
|
||||||
|
- Allow users to unignore zle-\* widgets (e.g. zle-line-init) (#432)
|
||||||
|
|
||||||
|
|
||||||
|
## v0.5.2
|
||||||
|
- Allow disabling automatic widget re-binding for better performance (#418)
|
||||||
|
- Fix async suggestions when `SH_WORD_SPLIT` is set
|
||||||
|
- Refactor async mode to use process substitution instead of zpty (#417)
|
||||||
|
|
||||||
|
## v0.5.1
|
||||||
|
- Speed up widget rebinding (#413)
|
||||||
|
- Clean up global variable creations (#403)
|
||||||
|
- Respect user's set options when running original widget (#402)
|
||||||
|
|
||||||
|
## v0.5.0
|
||||||
|
- Don't overwrite config with default values (#335)
|
||||||
|
- Support fallback strategies by supplying array to suggestion config var
|
||||||
|
- Rename "default" suggestion strategy to "history" to name it based on what it actually does
|
||||||
|
- Reset opts in some functions affected by `GLOB_SUBST` (#334)
|
||||||
|
- Support widgets starting with dashes (ex: `-a-widget`) (#337)
|
||||||
|
- Skip async tests in zsh versions less than 5.0.8 because of reliability issues
|
||||||
|
- Fix handling of newline + carriage return in async pty (#333)
|
||||||
|
|
||||||
|
|
||||||
|
## v0.4.3
|
||||||
|
- Avoid bell when accepting suggestions with `autosuggest-accept` (#228)
|
||||||
|
- Don't fetch suggestions after [up,down]-line-or-beginning-search (#227, #241)
|
||||||
|
- We are now running CI against new 5.5.1 version
|
||||||
|
- Fix partial-accept in vi mode (#188)
|
||||||
|
- Fix suggestion disappearing on fast movement after switching to `vicmd` mode (#290)
|
||||||
|
- Fix issue rotating through kill ring with `yank-pop` (#301)
|
||||||
|
- Fix issue creating new pty for async mode when previous pty is not properly cleaned up (#249)
|
||||||
|
|
||||||
|
## v0.4.2
|
||||||
|
- Fix bug in zsh versions older than 5.0.8 (#296)
|
||||||
|
- Officially support back to zsh v4.3.11
|
||||||
|
|
||||||
|
## v0.4.1
|
||||||
|
- Switch to [[ and (( conditionals instead of [ (#257)
|
||||||
|
- Avoid warnnestedvar warnings with `typeset -g` (#275)
|
||||||
|
- Replace tabs with spaces in yaml (#268)
|
||||||
|
- Clean up and fix escaping of special characters (#267)
|
||||||
|
- Add `emacs-forward-word` to default list of partial accept widgets (#246)
|
||||||
|
|
||||||
|
## v0.4.0
|
||||||
|
- High-level integration tests using RSpec and tmux
|
||||||
|
- Add continuous integration with Circle CI
|
||||||
|
- Experimental support for asynchronous suggestions (#170)
|
||||||
|
- Fix problems with multi-line suggestions (#225)
|
||||||
|
- Optimize case where manually typing in suggestion
|
||||||
|
- Avoid wrapping any zle-\* widgets (#206)
|
||||||
|
- Remove support for deprecated options from v0.0.x
|
||||||
|
- Handle history entries that begin with dashes
|
||||||
|
- Gracefully handle being sourced multiple times (#126)
|
||||||
|
- Add enable/disable/toggle widgets to disable/enable suggestions (#219)
|
||||||
|
|
||||||
|
|
||||||
|
## v0.3.3
|
||||||
|
- Switch from $history array to fc builtin for better performance with large HISTFILEs (#164)
|
||||||
|
- Fix tilde handling when extended_glob is set (#168)
|
||||||
|
- Add config option for maximum buffer length to fetch suggestions for (#178)
|
||||||
|
- Add config option for list of widgets to ignore (#184)
|
||||||
|
- Don't fetch a new suggestion unless a modification widget actually modifies the buffer (#183)
|
||||||
|
|
||||||
|
## v0.3.2
|
||||||
|
- Test runner now supports running specific tests and choosing zsh binary
|
||||||
|
- Return code from original widget is now correctly passed through (#135)
|
||||||
|
- Add `vi-add-eol` to list of accept widgets (#143)
|
||||||
|
- Escapes widget names within evals to fix problems with irregular widget names (#152)
|
||||||
|
- Plugin now clears suggestion while within a completion menu (#149)
|
||||||
|
- .plugin file no longer relies on symbolic link support, fixing issues on Windows (#156)
|
||||||
|
|
||||||
|
## v0.3.1
|
||||||
|
|
||||||
|
- Fixes issue with `vi-next-char` not accepting suggestion (#137).
|
||||||
|
- Fixes global variable warning when WARN_CREATE_GLOBAL option enabled (#133).
|
||||||
|
- Split out a separate test file for each widget.
|
||||||
|
|
||||||
|
## v0.3.0
|
||||||
|
|
||||||
|
- Adds `autosuggest-execute` widget (PR #124).
|
||||||
|
- Adds concept of suggestion "strategies" for different ways of fetching suggestions.
|
||||||
|
- Adds "match_prev_cmd" strategy (PR #131).
|
||||||
|
- Uses git submodules for testing dependencies.
|
||||||
|
- Lots of test cleanup.
|
||||||
|
- Various bug fixes for zsh 5.0.x and `sh_word_split` option.
|
||||||
|
|
||||||
|
|
||||||
|
## v0.2.17
|
||||||
|
|
||||||
|
Start of changelog.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
Fish-like fast/unobtrusive autosuggestions for zsh.
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
FROM ruby:2.5.3-alpine
|
||||||
|
|
||||||
|
RUN apk add --no-cache autoconf
|
||||||
|
RUN apk add --no-cache libtool
|
||||||
|
RUN apk add --no-cache libcap-dev
|
||||||
|
RUN apk add --no-cache pcre-dev
|
||||||
|
RUN apk add --no-cache curl
|
||||||
|
RUN apk add --no-cache build-base
|
||||||
|
RUN apk add --no-cache ncurses-dev
|
||||||
|
RUN apk add --no-cache tmux
|
||||||
|
|
||||||
|
WORKDIR /zsh-autosuggestions
|
||||||
|
|
||||||
|
ADD ZSH_VERSIONS /zsh-autosuggestions/ZSH_VERSIONS
|
||||||
|
ADD install_test_zsh.sh /zsh-autosuggestions/install_test_zsh.sh
|
||||||
|
RUN ./install_test_zsh.sh
|
||||||
|
|
||||||
|
ADD Gemfile /zsh-autosuggestions/Gemfile
|
||||||
|
ADD Gemfile.lock /zsh-autosuggestions/Gemfile.lock
|
||||||
|
RUN bundle install
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
source 'https://rubygems.org'
|
||||||
|
|
||||||
|
gem 'rspec'
|
||||||
|
gem 'rspec-wait'
|
||||||
|
gem 'pry-byebug'
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
byebug (9.0.5)
|
||||||
|
coderay (1.1.1)
|
||||||
|
diff-lcs (1.3)
|
||||||
|
method_source (0.8.2)
|
||||||
|
pry (0.10.4)
|
||||||
|
coderay (~> 1.1.0)
|
||||||
|
method_source (~> 0.8.1)
|
||||||
|
slop (~> 3.4)
|
||||||
|
pry-byebug (3.4.0)
|
||||||
|
byebug (~> 9.0)
|
||||||
|
pry (~> 0.10)
|
||||||
|
rspec (3.5.0)
|
||||||
|
rspec-core (~> 3.5.0)
|
||||||
|
rspec-expectations (~> 3.5.0)
|
||||||
|
rspec-mocks (~> 3.5.0)
|
||||||
|
rspec-core (3.5.4)
|
||||||
|
rspec-support (~> 3.5.0)
|
||||||
|
rspec-expectations (3.5.0)
|
||||||
|
diff-lcs (>= 1.2.0, < 2.0)
|
||||||
|
rspec-support (~> 3.5.0)
|
||||||
|
rspec-mocks (3.5.0)
|
||||||
|
diff-lcs (>= 1.2.0, < 2.0)
|
||||||
|
rspec-support (~> 3.5.0)
|
||||||
|
rspec-support (3.5.0)
|
||||||
|
rspec-wait (0.0.9)
|
||||||
|
rspec (>= 3, < 4)
|
||||||
|
slop (3.6.0)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
ruby
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
pry-byebug
|
||||||
|
rspec
|
||||||
|
rspec-wait
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
1.13.6
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
# Installation
|
||||||
|
|
||||||
|
* [Packages](#packages)
|
||||||
|
* [Antigen](#antigen)
|
||||||
|
* [Oh My Zsh](#oh-my-zsh)
|
||||||
|
* [Manual](#manual-git-clone)
|
||||||
|
|
||||||
|
## Packages
|
||||||
|
|
||||||
|
| System | Package |
|
||||||
|
| ------------- | ------------- |
|
||||||
|
| Debian / Ubuntu | [zsh-autosuggestions OBS repository](https://software.opensuse.org/download.html?project=shells%3Azsh-users%3Azsh-autosuggestions&package=zsh-autosuggestions) |
|
||||||
|
| Fedora / CentOS / RHEL / Scientific Linux | [zsh-autosuggestions OBS repository](https://software.opensuse.org/download.html?project=shells%3Azsh-users%3Azsh-autosuggestions&package=zsh-autosuggestions) |
|
||||||
|
| OpenSUSE / SLE | [zsh-autosuggestions OBS repository](https://software.opensuse.org/download.html?project=shells%3Azsh-users%3Azsh-autosuggestions&package=zsh-autosuggestions) |
|
||||||
|
| Arch Linux / Manjaro / Antergos / Hyperbola | [zsh-autosuggestions](https://www.archlinux.org/packages/zsh-autosuggestions), [zsh-autosuggestions-git](https://aur.archlinux.org/packages/zsh-autosuggestions-git) |
|
||||||
|
| NixOS | [zsh-autosuggestions](https://github.com/NixOS/nixpkgs/blob/master/pkgs/shells/zsh/zsh-autosuggestions/default.nix) |
|
||||||
|
| Void Linux | [zsh-autosuggestions](https://github.com/void-linux/void-packages/blob/master/srcpkgs/zsh-autosuggestions/template) |
|
||||||
|
| Mac OS | [homebrew](https://github.com/Homebrew/homebrew-core/blob/master/Formula/zsh-autosuggestions.rb) |
|
||||||
|
| NetBSD | [pkgsrc](http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/shells/zsh-autosuggestions/README.html) |
|
||||||
|
|
||||||
|
## Antigen
|
||||||
|
|
||||||
|
1. Add the following to your `.zshrc`:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
antigen bundle zsh-users/zsh-autosuggestions
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Start a new terminal session.
|
||||||
|
|
||||||
|
## Oh My Zsh
|
||||||
|
|
||||||
|
1. Clone this repository into `$ZSH_CUSTOM/plugins` (by default `~/.oh-my-zsh/custom/plugins`)
|
||||||
|
|
||||||
|
```sh
|
||||||
|
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Add the plugin to the list of plugins for Oh My Zsh to load (inside `~/.zshrc`):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
plugins=(zsh-autosuggestions)
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Start a new terminal session.
|
||||||
|
|
||||||
|
## Manual (Git Clone)
|
||||||
|
|
||||||
|
1. Clone this repository somewhere on your machine. This guide will assume `~/.zsh/zsh-autosuggestions`.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Add the following to your `.zshrc`:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Start a new terminal session.
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
Copyright (c) 2013 Thiago de Arruda
|
||||||
|
Copyright (c) 2016-2019 Eric Freese
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person
|
||||||
|
obtaining a copy of this software and associated documentation
|
||||||
|
files (the "Software"), to deal in the Software without
|
||||||
|
restriction, including without limitation the rights to use,
|
||||||
|
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the
|
||||||
|
Software is furnished to do so, subject to the following
|
||||||
|
conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
|
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
OTHER DEALINGS IN THE SOFTWARE.
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
SRC_DIR := ./src
|
||||||
|
|
||||||
|
SRC_FILES := \
|
||||||
|
$(SRC_DIR)/config.zsh \
|
||||||
|
$(SRC_DIR)/util.zsh \
|
||||||
|
$(SRC_DIR)/bind.zsh \
|
||||||
|
$(SRC_DIR)/highlight.zsh \
|
||||||
|
$(SRC_DIR)/widgets.zsh \
|
||||||
|
$(SRC_DIR)/strategies/*.zsh \
|
||||||
|
$(SRC_DIR)/fetch.zsh \
|
||||||
|
$(SRC_DIR)/async.zsh \
|
||||||
|
$(SRC_DIR)/start.zsh
|
||||||
|
|
||||||
|
HEADER_FILES := \
|
||||||
|
DESCRIPTION \
|
||||||
|
URL \
|
||||||
|
VERSION \
|
||||||
|
LICENSE
|
||||||
|
|
||||||
|
PLUGIN_TARGET := zsh-autosuggestions.zsh
|
||||||
|
|
||||||
|
all: $(PLUGIN_TARGET)
|
||||||
|
|
||||||
|
$(PLUGIN_TARGET): $(HEADER_FILES) $(SRC_FILES)
|
||||||
|
cat $(HEADER_FILES) | sed -e 's/^/# /g' > $@
|
||||||
|
cat $(SRC_FILES) >> $@
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
rm $(PLUGIN_TARGET)
|
||||||
|
|
||||||
|
.PHONY: test
|
||||||
|
test: all
|
||||||
|
@test -n "$$TEST_ZSH_BIN" && echo "Testing zsh binary: $(TEST_ZSH_BIN)" || true
|
||||||
|
bundle exec rspec $(TESTS)
|
||||||
@@ -0,0 +1,177 @@
|
|||||||
|
# zsh-autosuggestions
|
||||||
|
|
||||||
|
_[Fish](http://fishshell.com/)-like fast/unobtrusive autosuggestions for zsh._
|
||||||
|
|
||||||
|
It suggests commands as you type based on history and completions.
|
||||||
|
|
||||||
|
Requirements: Zsh v4.3.11 or later
|
||||||
|
|
||||||
|
[](https://circleci.com/gh/zsh-users/zsh-autosuggestions)
|
||||||
|
[](https://gitter.im/zsh-users/zsh-autosuggestions)
|
||||||
|
|
||||||
|
<a href="https://asciinema.org/a/37390" target="_blank"><img src="https://asciinema.org/a/37390.png" width="400" /></a>
|
||||||
|
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
See [INSTALL.md](INSTALL.md).
|
||||||
|
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
As you type commands, you will see a completion offered after the cursor in a muted gray color. This color can be changed by setting the `ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE` variable. See [configuration](#configuration).
|
||||||
|
|
||||||
|
If you press the <kbd>→</kbd> key (`forward-char` widget) or <kbd>End</kbd> (`end-of-line` widget) with the cursor at the end of the buffer, it will accept the suggestion, replacing the contents of the command line buffer with the suggestion.
|
||||||
|
|
||||||
|
If you invoke the `forward-word` widget, it will partially accept the suggestion up to the point that the cursor moves to.
|
||||||
|
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
You may want to override the default global config variables. Default values of these variables can be found [here](src/config.zsh).
|
||||||
|
|
||||||
|
**Note:** If you are using Oh My Zsh, you can put this configuration in a file in the `$ZSH_CUSTOM` directory. See their comments on [overriding internals](https://github.com/robbyrussell/oh-my-zsh/wiki/Customization#overriding-internals).
|
||||||
|
|
||||||
|
|
||||||
|
### Suggestion Highlight Style
|
||||||
|
|
||||||
|
Set `ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE` to configure the style that the suggestion is shown with. The default is `fg=8`, which will set the foreground color to color 8 from the 256-color palette. If your terminal only supports 8 colors, you will need to use a number between 0 and 7.
|
||||||
|
|
||||||
|
Background color can also be set, and the suggestion can be styled bold, underlined, or standout. For example, this would show suggestions with bold, underlined, pink text on a cyan background:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#ff00ff,bg=cyan,bold,underline"
|
||||||
|
```
|
||||||
|
|
||||||
|
For more info, read the Character Highlighting section of the zsh manual: `man zshzle` or [online](http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting).
|
||||||
|
|
||||||
|
**Note:** Some iTerm2 users have reported [not being able to see the suggestions](https://github.com/zsh-users/zsh-autosuggestions/issues/416#issuecomment-486516333). If this affects you, the problem is likely caused by incorrect color settings. In order to correct this, go into iTerm2's setting, navigate to profile > colors and make sure that the colors for Basic Colors > Background and ANSI Colors > Bright Black are **different**.
|
||||||
|
|
||||||
|
|
||||||
|
### Suggestion Strategy
|
||||||
|
|
||||||
|
`ZSH_AUTOSUGGEST_STRATEGY` is an array that specifies how suggestions should be generated. The strategies in the array are tried successively until a suggestion is found. There are currently three built-in strategies to choose from:
|
||||||
|
|
||||||
|
- `history`: Chooses the most recent match from history.
|
||||||
|
- `match_prev_cmd`: Like `history`, but chooses the most recent match whose preceding history item matches the most recently executed command ([more info](src/strategies/match_prev_cmd.zsh)). Note that this strategy won't work as expected with ZSH options that don't preserve the history order such as `HIST_IGNORE_ALL_DUPS` or `HIST_EXPIRE_DUPS_FIRST`.
|
||||||
|
- `completion`: (experimental) Chooses a suggestion based on what tab-completion would suggest. (requires `zpty` module)
|
||||||
|
|
||||||
|
For example, setting `ZSH_AUTOSUGGEST_STRATEGY=(history completion)` will first try to find a suggestion from your history, but, if it can't find a match, will find a suggestion from the completion engine.
|
||||||
|
|
||||||
|
|
||||||
|
### Widget Mapping
|
||||||
|
|
||||||
|
This plugin works by triggering custom behavior when certain [zle widgets](http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Zle-Widgets) are invoked. You can add and remove widgets from these arrays to change the behavior of this plugin:
|
||||||
|
|
||||||
|
- `ZSH_AUTOSUGGEST_CLEAR_WIDGETS`: Widgets in this array will clear the suggestion when invoked.
|
||||||
|
- `ZSH_AUTOSUGGEST_ACCEPT_WIDGETS`: Widgets in this array will accept the suggestion when invoked.
|
||||||
|
- `ZSH_AUTOSUGGEST_EXECUTE_WIDGETS`: Widgets in this array will execute the suggestion when invoked.
|
||||||
|
- `ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS`: Widgets in this array will partially accept the suggestion when invoked.
|
||||||
|
- `ZSH_AUTOSUGGEST_IGNORE_WIDGETS`: Widgets in this array will not trigger any custom behavior.
|
||||||
|
|
||||||
|
Widgets that modify the buffer and are not found in any of these arrays will fetch a new suggestion after they are invoked.
|
||||||
|
|
||||||
|
**Note:** A widget shouldn't belong to more than one of the above arrays.
|
||||||
|
|
||||||
|
|
||||||
|
### Disabling suggestion for large buffers
|
||||||
|
|
||||||
|
Set `ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE` to an integer value to disable autosuggestion for large buffers. The default is unset, which means that autosuggestion will be tried for any buffer size. Recommended value is 20.
|
||||||
|
This can be useful when pasting large amount of text in the terminal, to avoid triggering autosuggestion for strings that are too long.
|
||||||
|
|
||||||
|
### Enable Asynchronous Mode
|
||||||
|
|
||||||
|
As of `v0.4.0`, suggestions can be fetched asynchronously. To enable this behavior, set the `ZSH_AUTOSUGGEST_USE_ASYNC` variable (it can be set to anything).
|
||||||
|
|
||||||
|
### Disabling automatic widget re-binding
|
||||||
|
|
||||||
|
Set `ZSH_AUTOSUGGEST_MANUAL_REBIND` (it can be set to anything) to disable automatic widget re-binding on each precmd. This can be a big boost to performance, but you'll need to handle re-binding yourself if any of the widget lists change or if you or another plugin wrap any of the autosuggest widgets. To re-bind widgets, run `_zsh_autosuggest_bind_widgets`.
|
||||||
|
|
||||||
|
|
||||||
|
### Key Bindings
|
||||||
|
|
||||||
|
This plugin provides a few widgets that you can use with `bindkey`:
|
||||||
|
|
||||||
|
1. `autosuggest-accept`: Accepts the current suggestion.
|
||||||
|
2. `autosuggest-execute`: Accepts and executes the current suggestion.
|
||||||
|
3. `autosuggest-clear`: Clears the current suggestion.
|
||||||
|
4. `autosuggest-fetch`: Fetches a suggestion (works even when suggestions are disabled).
|
||||||
|
5. `autosuggest-disable`: Disables suggestions.
|
||||||
|
6. `autosuggest-enable`: Re-enables suggestions.
|
||||||
|
7. `autosuggest-toggle`: Toggles between enabled/disabled suggestions.
|
||||||
|
|
||||||
|
For example, this would bind <kbd>ctrl</kbd> + <kbd>space</kbd> to accept the current suggestion.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
bindkey '^ ' autosuggest-accept
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
If you have a problem, please search through [the list of issues on GitHub](https://github.com/zsh-users/zsh-autosuggestions/issues?q=) to see if someone else has already reported it.
|
||||||
|
|
||||||
|
### Reporting an Issue
|
||||||
|
|
||||||
|
Before reporting an issue, please try temporarily disabling sections of your configuration and other plugins that may be conflicting with this plugin to isolate the problem.
|
||||||
|
|
||||||
|
When reporting an issue, please include:
|
||||||
|
|
||||||
|
- The smallest, simplest `.zshrc` configuration that will reproduce the problem. See [this comment](https://github.com/zsh-users/zsh-autosuggestions/issues/102#issuecomment-180944764) for a good example of what this means.
|
||||||
|
- The version of zsh you're using (`zsh --version`)
|
||||||
|
- Which operating system you're running
|
||||||
|
|
||||||
|
|
||||||
|
## Uninstallation
|
||||||
|
|
||||||
|
1. Remove the code referencing this plugin from `~/.zshrc`.
|
||||||
|
|
||||||
|
2. Remove the git repository from your hard drive
|
||||||
|
|
||||||
|
```sh
|
||||||
|
rm -rf ~/.zsh/zsh-autosuggestions # Or wherever you installed
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
### Build Process
|
||||||
|
|
||||||
|
Edit the source files in `src/`. Run `make` to build `zsh-autosuggestions.zsh` from those source files.
|
||||||
|
|
||||||
|
|
||||||
|
### Pull Requests
|
||||||
|
|
||||||
|
Pull requests are welcome! If you send a pull request, please:
|
||||||
|
|
||||||
|
- Request to merge into the `develop` branch (*NOT* `master`)
|
||||||
|
- Match the existing coding conventions.
|
||||||
|
- Include helpful comments to keep the barrier-to-entry low for people new to the project.
|
||||||
|
- Write tests that cover your code as much as possible.
|
||||||
|
|
||||||
|
|
||||||
|
### Testing
|
||||||
|
|
||||||
|
Tests are written in ruby using the [`rspec`](http://rspec.info/) framework. They use [`tmux`](https://tmux.github.io/) to drive a pseudoterminal, sending simulated keystrokes and making assertions on the terminal content.
|
||||||
|
|
||||||
|
Test files live in `spec/`. To run the tests, run `make test`. To run a specific test, run `TESTS=spec/some_spec.rb make test`. You can also specify a `zsh` binary to use by setting the `TEST_ZSH_BIN` environment variable (ex: `TEST_ZSH_BIN=/bin/zsh make test`).
|
||||||
|
|
||||||
|
A docker image for testing is available [on docker hub](https://hub.docker.com/r/ericfreese/zsh-autosuggestions-test). It comes with ruby, the bundler dependencies, and all supported versions of zsh installed.
|
||||||
|
|
||||||
|
Pull the docker image with:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker pull ericfreese/zsh-autosuggestions-test
|
||||||
|
```
|
||||||
|
|
||||||
|
To run the tests for a specific version of zsh (where `<version>` below is substituted with the contents of a line from the [`ZSH_VERSIONS`](ZSH_VERSIONS) file):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker run -it -e TEST_ZSH_BIN=zsh-<version> -v $PWD:/zsh-autosuggestions zsh-autosuggestions-test make test
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This project is licensed under [MIT license](http://opensource.org/licenses/MIT).
|
||||||
|
For the full text of the license, see the [LICENSE](LICENSE) file.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
https://github.com/zsh-users/zsh-autosuggestions
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
v0.6.3
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
# Zsh releases to run tests against
|
||||||
|
# See https://github.com/zsh-users/zsh/releases
|
||||||
|
#
|
||||||
|
# When modifying this file, rebuild and push docker image:
|
||||||
|
# $ docker build -t ericfreese/zsh-autosuggestions-test .
|
||||||
|
# $ docker push ericfreese/zsh-autosuggestions-test
|
||||||
|
4.3.11
|
||||||
|
5.0.2
|
||||||
|
5.0.8
|
||||||
|
5.1.1
|
||||||
|
5.2
|
||||||
|
5.3.1
|
||||||
|
5.4.2
|
||||||
|
5.5.1
|
||||||
|
5.6.2
|
||||||
|
5.7.1
|
||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
indent_style = tab
|
||||||
|
indent_size = 4
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
indent_style = space
|
||||||
|
|
||||||
|
[*.rb]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
[*.yml]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
--color
|
||||||
|
--require spec_helper
|
||||||
|
--format documentation
|
||||||
Reference in New Issue
Block a user