2 Commits

Author SHA1 Message Date
Marc Cornellà
ebd52d0d62 Backport CASE_SENSITIVE setting patch 2026-03-03 20:14:37 +01:00
ohmyzsh[bot]
379b5aed42 chore(history-substring-search): update to 14c8d2e0 2026-01-18 06:10:41 +00:00
35 changed files with 70 additions and 476 deletions

View File

@@ -7,7 +7,6 @@
- [ ] I have read the contribution guide and followed all the instructions.
- [ ] The code follows the code style guide detailed in the wiki.
- [ ] The code is mine or it's from somewhere with an MIT-compatible license.
- [ ] If I used AI tools (ChatGPT, Claude, Gemini, etc.) to assist with this contribution, I've disclosed it below.
- [ ] The code is efficient, to the best of my ability, and does not waste computer resources.
- [ ] The code is stable and I have tested it myself, to the best of my abilities.
- [ ] If the code introduces new aliases, I provide a valid use case for all plugin users down below.

View File

@@ -19,7 +19,7 @@ dependencies:
plugins/history-substring-search:
repo: zsh-users/zsh-history-substring-search
branch: master
version: 87ce96b1862928d84b1afe7c173316614b30e301
version: 14c8d2e0ffaee98f2df9850b19944f32546fdea5
precopy: |
set -e
rm -f zsh-history-substring-search.plugin.zsh
@@ -30,7 +30,7 @@ dependencies:
plugins/kube-ps1:
repo: jonmosco/kube-ps1
branch: master
version: 9b41c091d5dd4a99e58cf58b5d98a4847937b1bb
version: 0b0e6daf4197ecabb1ae4f2d46fb148a8e1e73e5
precopy: |
set -e
find . ! -name kube-ps1.sh ! -name LICENSE ! -name README.md -delete

View File

@@ -13,12 +13,12 @@ jobs:
contents: write # this is needed to push commits and branches
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@a90bcbc6539c36a85cdfeb73f7e2f433735f215b # v2.15.0
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
fetch-depth: 0
- name: Authenticate as @ohmyzsh
@@ -28,7 +28,7 @@ jobs:
app-id: ${{ secrets.OHMYZSH_APP_ID }}
private-key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }}
- name: Setup Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
with:
python-version: "3.12"
cache: "pip"

View File

@@ -1,4 +1,4 @@
certifi==2026.2.25
certifi==2026.1.4
charset-normalizer==3.4.4
idna==3.11
PyYAML==6.0.3

View File

@@ -26,12 +26,12 @@ jobs:
- macos-latest
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@a90bcbc6539c36a85cdfeb73f7e2f433735f215b # v2.15.0
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
with:
egress-policy: audit
- name: Set up git repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Install zsh
if: runner.os == 'Linux'
run: sudo apt-get update; sudo apt-get install zsh
@@ -47,12 +47,12 @@ jobs:
- test
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@a90bcbc6539c36a85cdfeb73f7e2f433735f215b # v2.15.0
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Install Vercel CLI
run: npm install -g vercel
- name: Setup project and deploy

View File

@@ -24,12 +24,12 @@ jobs:
if: github.repository == 'ohmyzsh/ohmyzsh'
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@a90bcbc6539c36a85cdfeb73f7e2f433735f215b # v2.15.0
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
with:
egress-policy: audit
- name: Set up git repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Install zsh
run: sudo apt-get update; sudo apt-get install zsh
- name: Check syntax

View File

@@ -17,7 +17,7 @@ jobs:
if: github.repository == 'ohmyzsh/ohmyzsh'
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@a90bcbc6539c36a85cdfeb73f7e2f433735f215b # v2.15.0
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
with:
egress-policy: audit
- name: Authenticate as @ohmyzsh

View File

@@ -36,12 +36,12 @@ jobs:
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@a90bcbc6539c36a85cdfeb73f7e2f433735f215b # v2.15.0
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
with:
egress-policy: audit
- name: "Checkout code"
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
@@ -53,13 +53,13 @@ jobs:
publish_results: true
- name: "Upload artifact"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: SARIF file
path: results.sarif
retention-days: 5
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@89a39a4e59826350b863aa6b6252a07ad50cf83e # v4.32.4
uses: github/codeql-action/upload-sarif@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
with:
sarif_file: results.sarif

View File

@@ -20,7 +20,6 @@ you would make is not already covered.
- [Getting started](#getting-started)
- [You have a solution](#you-have-a-solution)
- [You have an addition](#you-have-an-addition)
- [A note on AI-assisted contributions](#a-note-on-ai-assisted-contributions)
- [Use the Search, Luke](#use-the-search-luke)
- [Commit Guidelines](#commit-guidelines)
- [Format](#format)
@@ -126,30 +125,6 @@ Because of this, from now on, we require that new aliases follow these condition
This list is not exhaustive! Please remember that your alias will be in the machines of many people,
so it should be justified why they should have it.
## A note on AI-assisted contributions
We'll admit it: AI tools can be pretty helpful for coding tasks, and we're not here to gatekeep how you get your work done. We use these tools ourselves! 🤖
But here's the thing—Oh My Zsh is maintained by a small team of volunteers who do this in their spare time. We already have hundreds of pending PRs, and we want to make sure we're spending our limited time effectively.
If you used AI tools meaningfully in your contribution (code generation, agentic coding assistants, etc.), please mention it in your PR description. Basic autocomplete doesn't count, but if an AI wrote substantial parts of your code, just let us know.
**Examples of good disclosure:**
- "Used ChatGPT to help generate the initial regex pattern for parsing git status output"
- "Claude assisted with writing the unit tests for this feature"
- "Generated with Gemini and then reviewed/tested manually"
- Or simply: "AI-assisted" in your PR description
Here's what we're looking for:
- **You understand your code**: You should be able to explain what your contribution does and how it works. We want to collaborate with humans who are invested in the project.
- **Context matters**: Tell us what problem you're solving, how you tested it, and link to relevant docs. Small, incremental changes work better than massive generated overhauls.
- **Quality over quantity**: We'd rather have one thoughtful, well-tested contribution than ten AI-generated PRs that need extensive review.
The disclosure helps us know how much guidance to offer. If we're just reviewing AI output that you can't explain or improve, that changes the dynamic—and frankly, it's not a great use of anyone's time.
As always, we reserve the right to decline any contribution. PRs that appear to be unreviewed AI output, or code the contributor can't explain, may be closed without extensive feedback.
----
## Use the Search, Luke

View File

@@ -40,9 +40,9 @@ if [[ -z "$LS_COLORS" ]]; then
fi
function test-ls-args {
# Usage: test-ls-args cmd args...
# e.g. test-ls-args gls --color
command "$@" /dev/null &>/dev/null
local cmd="$1" # ls, gls, colorls, ...
local args="${@[2,-1]}" # arguments except the first one
command "$cmd" "$args" /dev/null &>/dev/null
}
# Find the option for using colors in ls, depending on the version

View File

@@ -35,14 +35,11 @@ the `brew` binary before sourcing `oh-my-zsh.sh` and it'll set up the environmen
| `bdr` | `brew doctor` | Check your system for potential problems. |
| `bfu` | `brew upgrade --formula` | Upgrade only formulae (not casks). |
| `bi` | `brew install` | Install a formula. |
| `bih` | `brew install --HEAD` | Install a formula with --HEAD |
| `bl` | `brew list` | List all installed formulae. |
| `bo` | `brew outdated` | List installed formulae that have an updated version available. |
| `br` | `brew reinstall` | Reinstall a formula. |
| `brewp` | `brew pin` | Pin a specified formula so that it's not upgraded. |
| `brews` | `brew list -1` | List installed formulae or the installed files for a given formula. |
| `brewsp` | `brew list --pinned` | List pinned formulae, or show the version of a given formula. |
| `brh` | `brew reinstall --HEAD` | Reinstall a formula with --HEAD |
| `bs` | `brew search` | Perform a substring search of cask tokens and formula names for text. |
| `bsl` | `brew services list` | List all running services. |
| `bsoff` | `brew services stop` | Stop the service and unregister it from launching at login (or boot). |

View File

@@ -48,13 +48,10 @@ alias bcup='brew upgrade --cask'
alias bdr='brew doctor'
alias bfu='brew upgrade --formula'
alias bi='brew install'
alias bih='brew install --HEAD'
alias bl='brew list'
alias bo='brew outdated'
alias br='brew reinstall'
alias brewp='brew pin'
alias brewsp='brew list --pinned'
alias brh='brew reinstall --HEAD'
alias bs='brew search'
alias bsl='brew services list'
alias bsoff='brew services stop'

View File

@@ -43,7 +43,7 @@ function colored() {
environment+=( PATH="${__colored_man_pages_dir}:$PATH" )
fi
command env "${environment[@]}" "$@"
command env $environment "$@"
}
# Colorize man and dman/debman (from debian-goodies)

View File

@@ -22,15 +22,14 @@ Try: sudo apt install <selected package>
It works out of the box with the command-not-found packages for:
- [Ubuntu](https://launchpad.net/ubuntu/+source/command-not-found)
- [Ubuntu](https://www.porcheron.info/command-not-found-for-zsh/)
- [Debian](https://packages.debian.org/search?keywords=command-not-found)
- [Arch Linux](https://wiki.archlinux.org/title/Zsh#pkgfile_"command_not_found"_handler)
- [macOS (Homebrew)](https://github.com/Homebrew/brew/blob/main/docs/Command-Not-Found.md)
- [Arch Linux](https://wiki.archlinux.org/index.php/Pkgfile#Command_not_found)
- [macOS (Homebrew)](https://github.com/Homebrew/homebrew-command-not-found)
- [Fedora](https://fedoraproject.org/wiki/Features/PackageKitCommandNotFound)
- [NixOS](https://github.com/NixOS/nixpkgs/tree/master/nixos/modules/programs/command-not-found)
- [Termux](https://github.com/termux/command-not-found)
- [SUSE](https://www.unix.com/man-page/suse/1/command-not-found/)
- [Gentoo](https://github.com/AndrewAmmerlaan/command-not-found-gentoo/tree/main)
- [Void Linux](https://codeberg.org/classabbyamp/xbps-command-not-found)
You can add support for other platforms by submitting a Pull Request.

View File

@@ -1,15 +1,13 @@
## Platforms with a built-in command-not-found handler init file
for file (
# Arch Linux. Must have pkgfile installed: https://wiki.archlinux.org/title/Zsh#pkgfile_"command_not_found"_handler
# Arch Linux. Must have pkgfile installed: https://wiki.archlinux.org/index.php/Pkgfile#Command_not_found
/usr/share/doc/pkgfile/command-not-found.zsh
# Void Linux: https://codeberg.org/classabbyamp/xbps-command-not-found
/usr/share/zsh/plugins/xbps-command-not-found/xbps-command-not-found.zsh
# Homebrew: https://github.com/Homebrew/brew/blob/main/docs/Command-Not-Found.md
# Homebrew: https://github.com/Homebrew/homebrew-command-not-found
/opt/homebrew/Library/Homebrew/command-not-found/handler.sh
/usr/local/Homebrew/Library/Homebrew/command-not-found/handler.sh
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/command-not-found/handler.sh
# Old homebrew implementation
# Old homebrew implementation
/opt/homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh
/home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh

View File

@@ -6,22 +6,14 @@ command -v dnf5 > /dev/null && dnfprog=dnf5
alias dnfl="${dnfprog} list" # List packages
alias dnfli="${dnfprog} list installed" # List installed packages
alias dnfgl="${dnfprog} grouplist" # List package groups
alias dnfmc="${dnfprog} makecache" # Generate metadata cache
alias dnfp="${dnfprog} info" # Show package information
alias dnfs="${dnfprog} search" # Search package
alias dnfu="sudo ${dnfprog} upgrade" # Upgrade package
alias dnfi="sudo ${dnfprog} install" # Install package
alias dnfgi="sudo ${dnfprog} groupinstall" # Install package group
alias dnfr="sudo ${dnfprog} remove" # Remove package
alias dnfgr="sudo ${dnfprog} groupremove" # Remove package group
alias dnfc="sudo ${dnfprog} clean all" # Clean cache
# Conditional aliases based on dnfprog value
if [[ "${dnfprog}" == "dnf5" ]]; then
alias dnfgl="${dnfprog} group list" # List package groups (dnf5)
alias dnfgi="sudo ${dnfprog} group install" # Install package group (dnf5)
alias dnfgr="sudo ${dnfprog} group remove" # Remove package group (dnf5)
else
alias dnfgl="${dnfprog} grouplist" # List package groups (dnf)
alias dnfgi="sudo ${dnfprog} groupinstall" # Install package group (dnf)
alias dnfgr="sudo ${dnfprog} groupremove" # Remove package group (dnf)
fi

View File

@@ -78,14 +78,6 @@ change.
NOTE: if a directory is found in both the allowed and disallowed lists, the disallowed list
takes preference, _i.e._ the .env file will never be sourced.
## Named Pipe (FIFO) Support
The plugin supports `.env` files provided as UNIX named pipes (FIFOs) in addition to regular files.
This is useful when secrets managers like [1Password Environments](https://developer.1password.com/docs/environment/)
mount `.env` files as named pipes to inject secrets on-the-fly without writing them to disk.
No additional configuration is required — the plugin automatically detects and sources named pipes.
## Version Control
**It's strongly recommended to add `.env` file to `.gitignore`**, because usually it contains sensitive information such as your credentials, secret keys, passwords etc. You don't want to commit this file, it's supposed to be local only.

View File

@@ -11,7 +11,7 @@
## Functions
source_env() {
if [[ ! -f "$ZSH_DOTENV_FILE" ]] && [[ ! -p "$ZSH_DOTENV_FILE" ]]; then
if [[ ! -f "$ZSH_DOTENV_FILE" ]]; then
return
fi

View File

@@ -1,6 +1,6 @@
# gitignore
This plugin enables you to use [gitignore.io](https://www.gitignore.io) from the command line. You need an active internet connection to fetch templates. The plugin uses the gitignore.io CDN endpoint to simplify access and improve reliability.
This plugin enables you the use of [gitignore.io](https://www.toptal.com/developers/gitignore) from the command line. You need an active internet connection.
To use it, add `gitignore` to the plugins array in your zshrc file:
@@ -14,4 +14,4 @@ plugins=(... gitignore)
* `gi [TEMPLATENAME]`: Show git-ignore output on the command line, e.g. `gi java` to exclude class and package files.
* `gi [TEMPLATENAME] >> .gitignore`: Append the template rules to your project's `.gitignore` file.
* `gi [TEMPLATENAME] >> .gitignore`: Appending programming language settings to your projects .gitignore.

View File

@@ -1,21 +1,12 @@
# gitignore plugin for oh-my-zsh
# Uses gitignore.io CDN endpoint
function _gi_curl() {
curl -sfL "https://www.gitignore.io/api/$1"
}
function gi() {
local query="${(j:,:)@}"
_gi_curl "$query" || return 1
}
function gi() { curl -fLw '\n' https://www.toptal.com/developers/gitignore/api/"${(j:,:)@}" }
_gitignoreio_get_command_list() {
_gi_curl "list" | tr "," "\n"
curl -sfL https://www.toptal.com/developers/gitignore/api/list | tr "," "\n"
}
_gitignoreio () {
compset -P '*,'
compadd -S '' $(_gitignoreio_get_command_list)
compadd -S '' `_gitignoreio_get_command_list`
}
compdef _gitignoreio gi
compdef _gitignoreio gi

View File

@@ -1,143 +0,0 @@
# hcloud plugin
This plugin adds completion for the [Hetzner Cloud CLI](https://github.com/hetznercloud/cli),
as well as some aliases for common hcloud commands.
To use it, add `hcloud` to the plugins array in your zshrc file:
```zsh
plugins=(... hcloud)
```
## Aliases
| Alias | Command | Description |
| :--------- | :---------------------------------------- | :------------------------------------------------------------ |
| hc | `hcloud` | The hcloud command |
| | | **Context Management** |
| hcctx | `hcloud context` | Manage contexts |
| hcctxls | `hcloud context list` | List all contexts |
| hcctxu | `hcloud context use` | Use a context |
| hcctxc | `hcloud context create` | Create a new context |
| hcctxd | `hcloud context delete` | Delete a context |
| hcctxa | `hcloud context active` | Show active context |
| | | **Server Management** |
| hcs | `hcloud server` | Manage servers |
| hcsl | `hcloud server list` | List all servers |
| hcsc | `hcloud server create` | Create a server |
| hcsd | `hcloud server delete` | Delete a server |
| hcsdesc | `hcloud server describe` | Describe a server |
| hcspoff | `hcloud server poweroff` | Power off a server |
| hcspon | `hcloud server poweron` | Power on a server |
| hcsr | `hcloud server reboot` | Reboot a server |
| hcsreset | `hcloud server reset` | Reset a server |
| hcssh | `hcloud server ssh` | SSH into a server |
| hcse | `hcloud server enable-rescue` | Enable rescue mode for a server |
| hcsdr | `hcloud server disable-rescue` | Disable rescue mode for a server |
| hcsip | `hcloud server ip` | Manage server IPs |
| hcsa | `hcloud server attach-iso` | Attach an ISO to a server |
| hcsda | `hcloud server detach-iso` | Detach an ISO from a server |
| hcscip | `hcloud server change-type` | Change server type |
| | | **Volume Management** |
| hcv | `hcloud volume` | Manage volumes |
| hcvl | `hcloud volume list` | List all volumes |
| hcvc | `hcloud volume create` | Create a volume |
| hcvd | `hcloud volume delete` | Delete a volume |
| hcvdesc | `hcloud volume describe` | Describe a volume |
| hcva | `hcloud volume attach` | Attach a volume to a server |
| hcvda | `hcloud volume detach` | Detach a volume from a server |
| hcvr | `hcloud volume resize` | Resize a volume |
| | | **Network Management** |
| hcn | `hcloud network` | Manage networks |
| hcnl | `hcloud network list` | List all networks |
| hcnc | `hcloud network create` | Create a network |
| hcnd | `hcloud network delete` | Delete a network |
| hcndesc | `hcloud network describe` | Describe a network |
| hcnas | `hcloud network add-subnet` | Add a subnet to a network |
| hcnds | `hcloud network delete-subnet` | Delete a subnet from a network |
| hcnar | `hcloud network add-route` | Add a route to a network |
| hcndr | `hcloud network delete-route` | Delete a route from a network |
| | | **Floating IP Management** |
| hcfip | `hcloud floating-ip` | Manage floating IPs |
| hcfipl | `hcloud floating-ip list` | List all floating IPs |
| hcfipc | `hcloud floating-ip create` | Create a floating IP |
| hcfipd | `hcloud floating-ip delete` | Delete a floating IP |
| hcfipdesc | `hcloud floating-ip describe` | Describe a floating IP |
| hcfipa | `hcloud floating-ip assign` | Assign a floating IP to a server |
| hcfipua | `hcloud floating-ip unassign` | Unassign a floating IP from a server |
| | | **SSH Key Management** |
| hcsk | `hcloud ssh-key` | Manage SSH keys |
| hcskl | `hcloud ssh-key list` | List all SSH keys |
| hcskc | `hcloud ssh-key create` | Create an SSH key |
| hcskd | `hcloud ssh-key delete` | Delete an SSH key |
| hcskdesc | `hcloud ssh-key describe` | Describe an SSH key |
| hcsku | `hcloud ssh-key update` | Update an SSH key |
| | | **Image Management** |
| hci | `hcloud image` | Manage images |
| hcil | `hcloud image list` | List all images |
| hcid | `hcloud image delete` | Delete an image |
| hcidesc | `hcloud image describe` | Describe an image |
| hciu | `hcloud image update` | Update an image |
| | | **Firewall Management** |
| hcfw | `hcloud firewall` | Manage firewalls |
| hcfwl | `hcloud firewall list` | List all firewalls |
| hcfwc | `hcloud firewall create` | Create a firewall |
| hcfwd | `hcloud firewall delete` | Delete a firewall |
| hcfwdesc | `hcloud firewall describe` | Describe a firewall |
| hcfwar | `hcloud firewall add-rule` | Add a rule to a firewall |
| hcfwdr | `hcloud firewall delete-rule` | Delete a rule from a firewall |
| hcfwas | `hcloud firewall apply-to-resource` | Apply a firewall to a resource |
| hcfwrs | `hcloud firewall remove-from-resource` | Remove a firewall from a resource |
| | | **Load Balancer Management** |
| hclb | `hcloud load-balancer` | Manage load balancers |
| hclbl | `hcloud load-balancer list` | List all load balancers |
| hclbc | `hcloud load-balancer create` | Create a load balancer |
| hclbd | `hcloud load-balancer delete` | Delete a load balancer |
| hclbdesc | `hcloud load-balancer describe` | Describe a load balancer |
| hclbu | `hcloud load-balancer update` | Update a load balancer |
| hclbas | `hcloud load-balancer add-service` | Add a service to a load balancer |
| hclbds | `hcloud load-balancer delete-service` | Delete a service from a load balancer |
| hclbat | `hcloud load-balancer add-target` | Add a target to a load balancer |
| hclbdt | `hcloud load-balancer delete-target` | Delete a target from a load balancer |
| | | **Certificate Management** |
| hccert | `hcloud certificate` | Manage certificates |
| hccertl | `hcloud certificate list` | List all certificates |
| hccertc | `hcloud certificate create` | Create a certificate |
| hccertd | `hcloud certificate delete` | Delete a certificate |
| hccertdesc | `hcloud certificate describe` | Describe a certificate |
| hccertu | `hcloud certificate update` | Update a certificate |
| | | **Datacenter and Location Info** |
| hcdc | `hcloud datacenter list` | List all datacenters |
| hcloc | `hcloud location list` | List all locations |
| hcst | `hcloud server-type list` | List all server types |
| hcit | `hcloud image list --type system` | List all system images |
## Requirements
This plugin requires the [Hetzner Cloud CLI](https://github.com/hetznercloud/cli) to be installed.
### Installation
Install the Hetzner Cloud CLI using one of the following methods:
**macOS (Homebrew):**
```bash
brew install hcloud
```
**Linux (from source):**
```bash
go install github.com/hetznercloud/cli/cmd/hcloud@latest
```
**Or download a prebuilt binary from the [releases page](https://github.com/hetznercloud/cli/releases).**
### Setup
After installation, create a context and authenticate:
```bash
hcloud context create my-project
```
You'll be prompted to enter your Hetzner Cloud API token, which you can generate in the [Hetzner Cloud Console](https://console.hetzner.cloud/).

View File

@@ -1,129 +0,0 @@
# hcloud plugin for oh-my-zsh
# Hetzner Cloud CLI: https://github.com/hetznercloud/cli
if (( ! $+commands[hcloud] )); then
return
fi
# If the completion file doesn't exist yet, we need to autoload it and
# bind it to `hcloud`. Otherwise, compinit will have already done that.
if [[ ! -f "$ZSH_CACHE_DIR/completions/_hcloud" ]]; then
typeset -g -A _comps
autoload -Uz _hcloud
_comps[hcloud]=_hcloud
fi
hcloud completion zsh 2> /dev/null >| "$ZSH_CACHE_DIR/completions/_hcloud" &|
# Main alias
alias hc='hcloud'
# Context management
alias hcctx='hcloud context'
alias hcctxls='hcloud context list'
alias hcctxu='hcloud context use'
alias hcctxc='hcloud context create'
alias hcctxd='hcloud context delete'
alias hcctxa='hcloud context active'
# Server management
alias hcs='hcloud server'
alias hcsl='hcloud server list'
alias hcsc='hcloud server create'
alias hcsd='hcloud server delete'
alias hcsdesc='hcloud server describe'
alias hcspoff='hcloud server poweroff'
alias hcspon='hcloud server poweron'
alias hcsr='hcloud server reboot'
alias hcsreset='hcloud server reset'
alias hcssh='hcloud server ssh'
alias hcse='hcloud server enable-rescue'
alias hcsdr='hcloud server disable-rescue'
alias hcsip='hcloud server ip'
# Server actions
alias hcsa='hcloud server attach-iso'
alias hcsda='hcloud server detach-iso'
alias hcscip='hcloud server change-type'
# Volume management
alias hcv='hcloud volume'
alias hcvl='hcloud volume list'
alias hcvc='hcloud volume create'
alias hcvd='hcloud volume delete'
alias hcvdesc='hcloud volume describe'
alias hcva='hcloud volume attach'
alias hcvda='hcloud volume detach'
alias hcvr='hcloud volume resize'
# Network management
alias hcn='hcloud network'
alias hcnl='hcloud network list'
alias hcnc='hcloud network create'
alias hcnd='hcloud network delete'
alias hcndesc='hcloud network describe'
alias hcnas='hcloud network add-subnet'
alias hcnds='hcloud network delete-subnet'
alias hcnar='hcloud network add-route'
alias hcndr='hcloud network delete-route'
# Floating IP management
alias hcfip='hcloud floating-ip'
alias hcfipl='hcloud floating-ip list'
alias hcfipc='hcloud floating-ip create'
alias hcfipd='hcloud floating-ip delete'
alias hcfipdesc='hcloud floating-ip describe'
alias hcfipa='hcloud floating-ip assign'
alias hcfipua='hcloud floating-ip unassign'
# SSH key management
alias hcsk='hcloud ssh-key'
alias hcskl='hcloud ssh-key list'
alias hcskc='hcloud ssh-key create'
alias hcskd='hcloud ssh-key delete'
alias hcskdesc='hcloud ssh-key describe'
alias hcsku='hcloud ssh-key update'
# Image management
alias hci='hcloud image'
alias hcil='hcloud image list'
alias hcid='hcloud image delete'
alias hcidesc='hcloud image describe'
alias hciu='hcloud image update'
# Firewall management
alias hcfw='hcloud firewall'
alias hcfwl='hcloud firewall list'
alias hcfwc='hcloud firewall create'
alias hcfwd='hcloud firewall delete'
alias hcfwdesc='hcloud firewall describe'
alias hcfwar='hcloud firewall add-rule'
alias hcfwdr='hcloud firewall delete-rule'
alias hcfwas='hcloud firewall apply-to-resource'
alias hcfwrs='hcloud firewall remove-from-resource'
# Load balancer management
alias hclb='hcloud load-balancer'
alias hclbl='hcloud load-balancer list'
alias hclbc='hcloud load-balancer create'
alias hclbd='hcloud load-balancer delete'
alias hclbdesc='hcloud load-balancer describe'
alias hclbu='hcloud load-balancer update'
alias hclbas='hcloud load-balancer add-service'
alias hclbds='hcloud load-balancer delete-service'
alias hclbat='hcloud load-balancer add-target'
alias hclbdt='hcloud load-balancer delete-target'
# Certificate management
alias hccert='hcloud certificate'
alias hccertl='hcloud certificate list'
alias hccertc='hcloud certificate create'
alias hccertd='hcloud certificate delete'
alias hccertdesc='hcloud certificate describe'
alias hccertu='hcloud certificate update'
# Datacenter and location info
alias hcdc='hcloud datacenter list'
alias hcloc='hcloud location list'
alias hcst='hcloud server-type list'
alias hcit='hcloud image list --type system'

View File

@@ -79,7 +79,7 @@ Using [Zinit](https://github.com/zdharma-continuum/zinit):
2. Load the plugin in `~/.zshrc`:
zinit load 'zsh-users/zsh-history-substring-search
zinit load 'zsh-users/zsh-history-substring-search'
zinit ice wait atload'_history_substring_search_config'
3. Run `exec zsh` to take changes into account:

View File

@@ -3,6 +3,13 @@
0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}"
0="${${(M)0:#/*}:-$PWD/$0}"
# Respect case sensitivity settings for globbing in history search
if [[ "$CASE_SENSITIVE" = true ]]; then
: ${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS=''}
else
: ${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i'}
fi
source ${0:A:h}/history-substring-search.zsh

View File

@@ -45,14 +45,7 @@
: ${HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='bg=magenta,fg=white,bold'}
: ${HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='bg=red,fg=white,bold'}
# Respect CASE_SENSITIVE setting for case sensitivity
if [[ "$CASE_SENSITIVE" = true ]]; then
: ${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS=''}
else
: ${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i'}
fi
: ${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i'}
: ${HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=''}
: ${HISTORY_SUBSTRING_SEARCH_FUZZY=''}
: ${HISTORY_SUBSTRING_SEARCH_PREFIXED=''}
@@ -302,8 +295,8 @@ _history-substring-search-begin() {
fi
#
# Escape and join query parts with wildcard character '*' as separator
# `(j:CHAR:)` join array to string with CHAR as separator
# Escape and join query parts with wildcard character '*' as seperator
# `(j:CHAR:)` join array to string with CHAR as seperator
#
local search_pattern="${(j:*:)_history_substring_search_query_parts[@]//(#m)[\][()|\\*?#<>~^]/\\$MATCH}*"

View File

@@ -98,25 +98,6 @@ If you prefer to keep your prompt always up-to-date but still don't want to _fee
your prompt asynchronous. This plugin doesn't do this automatically so you'd have to hack your theme a bit for
that.
### Git async-prompt compatibility
If you use a wrapper function that calls `git_prompt_info` (as shown above), it won't work with
the default git async-prompt mode. This is because async-prompt only registers its background worker
when it detects `$(git_prompt_info)` literally in your prompt variables. A wrapper like
`$(_my_theme_vcs_info)` won't match, so the async output stays empty.
To fix this, add one of the following to your `.zshrc` **before** Oh My Zsh is sourced:
```zsh
# Option 1: force async handlers to always register (recommended, keeps async behavior)
zstyle ':omz:alpha:lib:git' async-prompt force
# Option 2: disable async-prompt entirely (simpler, but prompt may feel slower in large repos)
zstyle ':omz:alpha:lib:git' async-prompt no
```
See [#13555](https://github.com/ohmyzsh/ohmyzsh/issues/13555) for details.
## See Also
- [martinvonz/jj](https://github.com/martinvonz/jj)

View File

@@ -385,9 +385,9 @@ kube_ps1() {
local KUBE_PS1_RESET_COLOR="${_KUBE_PS1_OPEN_ESC}${_KUBE_PS1_DEFAULT_FG}${_KUBE_PS1_CLOSE_ESC}"
# If background color is set, reset color should also reset the background
# if [[ -n "${KUBE_PS1_BG_COLOR}" ]]; then
# KUBE_PS1_RESET_COLOR="${_KUBE_PS1_OPEN_ESC}${_KUBE_PS1_DEFAULT_FG}${_KUBE_PS1_DEFAULT_BG}${_KUBE_PS1_CLOSE_ESC}"
# fi
if [[ -n "${KUBE_PS1_BG_COLOR}" ]]; then
KUBE_PS1_RESET_COLOR="${_KUBE_PS1_OPEN_ESC}${_KUBE_PS1_DEFAULT_FG}${_KUBE_PS1_DEFAULT_BG}${_KUBE_PS1_CLOSE_ESC}"
fi
# Background Color
[[ -n "${KUBE_PS1_BG_COLOR}" ]] && KUBE_PS1+="$(_kube_ps1_color_bg "${KUBE_PS1_BG_COLOR}")"

View File

@@ -1,20 +0,0 @@
# Molecule plugin
This plugin adds aliases and completion for [Molecule](https://ansible.readthedocs.io/projects/molecule/), the
project designed to aid in the development and testing of Ansible roles..
To use it, add `molecule` to the plugins array in your zshrc file:
```zsh
plugins=(... molecule)
```
## Aliases
| Alias | Command | Description |
| :---- | :---------------- | ---------------------------------------------------------------------------------- |
| mol | molecule | Molecule aids in the development and testing of Ansible roles. |
| mcr | molecule create | Use the provisioner to start the instances. |
| mcon | molecule converge | Use the provisioner to configure instances (dependency, create, prepare converge). |
| mls | molecule list | List status of instances. |
| mvf | molecule verify | Run automated tests against instances. |

View File

@@ -1,22 +0,0 @@
# Completion
if (( ! $+commands[molecule] )); then
return
fi
# If the completion file doesn't exist yet, we need to autoload it and
# bind it to `molecule`. Otherwise, compinit will have already done that.
if [[ ! -f "$ZSH_CACHE_DIR/completions/_molecule" ]]; then
typeset -g -A _comps
autoload -Uz _molecule
_comps[molecule]=_molecule
fi
_MOLECULE_COMPLETE=zsh_source molecule >| "$ZSH_CACHE_DIR/completions/_molecule" &|
# Alias
# molecule: https://docs.ansible.com/projects/molecule/
alias mol='molecule'
alias mcr='molecule create'
alias mcon='molecule converge'
alias mls='molecule list'
alias mvf='molecule verify'

View File

@@ -1,8 +1,6 @@
# Pre-commit plugin
This plugin adds aliases for common commands of [pre-commit](https://pre-commit.com/).
It also supports [prek](https://github.com/prek/prek) as a drop-in replacement.
If `prek` is available, it will be used; otherwise, `pre-commit` is used as fallback.
To use this plugin, add it to the plugins array in your zshrc file:
@@ -12,11 +10,10 @@ plugins=(... pre-commit)
## Aliases
| Alias | Command | Description |
| ----- | ------------------------------------------------------ | --------------------------------------------- |
| prc | `prek` or `pre-commit` | The pre-commit command |
| prcau | `prek auto-update` or `pre-commit autoupdate` | Update hooks automatically |
| prcr | `prek run` or `pre-commit run` | The pre-commit run command |
| prcra | `prek run --all-files` or `pre-commit run --all-files` | Run pre-commit hooks on all files |
| prcrf | `prek run --files` or `pre-commit run --files` | Run pre-commit hooks on a given list of files |
| Alias | Command | Description |
| ------- | -------------------------------------- | ------------------------------------------------------ |
| prc | `pre-commit` | The `pre-commit` command |
| prcau | `pre-commit autoupdate` | Update hooks automatically |
| prcr | `pre-commit run` | The `pre-commit run` command |
| prcra | `pre-commit run --all-files` | Run pre-commit hooks on all files |
| prcrf | `pre-commit run --files` | Run pre-commit hooks on a given list of files |

View File

@@ -1,17 +1,8 @@
# Aliases for pre-commit (uses prek if available, else pre-commit)
if command -v prek &> /dev/null; then
_prc_cmd='prek'
_prc_autoupdate='auto-update'
else
_prc_cmd='pre-commit'
_prc_autoupdate='autoupdate'
fi
# Aliases for pre-commit
alias prc='pre-commit'
alias prc="$_prc_cmd"
alias prcau="$_prc_cmd $_prc_autoupdate"
alias prcr="$_prc_cmd run"
alias prcra="$_prc_cmd run --all-files"
alias prcrf="$_prc_cmd run --files"
alias prcau='pre-commit autoupdate'
alias prcr='pre-commit run'
alias prcra='pre-commit run --all-files'
alias prcrf='pre-commit run --files'

View File

@@ -5,8 +5,8 @@ if [[ -z $commands[thefuck] ]]; then
fi
# Register alias
[[ ! -a "$ZSH_CACHE_DIR/thefuck" ]] && thefuck --alias > "$ZSH_CACHE_DIR/thefuck"
source "$ZSH_CACHE_DIR/thefuck"
[[ ! -a $ZSH_CACHE_DIR/thefuck ]] && thefuck --alias > $ZSH_CACHE_DIR/thefuck
source $ZSH_CACHE_DIR/thefuck
fuck-command-line() {
local FUCK="$(THEFUCK_REQUIRE_CONFIRMATION=0 thefuck $(fc -ln -1 | tail -n 1) 2> /dev/null)"

View File

@@ -4,7 +4,6 @@ function {
$commands[virtualenvwrapper.sh] \
/usr/share/virtualenvwrapper/virtualenvwrapper{_lazy,}.sh \
/usr/local/bin/virtualenvwrapper{_lazy,}.sh \
/usr/bin/virtualenvwrapper{_lazy,}.sh \
/etc/bash_completion.d/virtualenvwrapper \
/usr/share/bash-completion/completions/virtualenvwrapper \
$HOME/.local/bin/virtualenvwrapper.sh

View File

@@ -22,6 +22,6 @@ plugins=(... yum)
| yi | `sudo yum install` | Install package |
| ygi | `sudo yum groupinstall` | Install package group |
| yr | `sudo yum remove` | Remove package |
| ygr | `sudo yum groupremove` | Remove package group |
| ygr | `sudo yum groupremove` | Remove pagage group |
| yrl | `sudo yum remove --remove-leaves` | Remove package and leaves |
| yc | `sudo yum clean all` | Clean yum cache |

View File

@@ -55,9 +55,9 @@ _nlist_cursor_visibility() {
[ "$1" = "1" ] && { tput cvvis; tput cnorm }
[ "$1" = "0" ] && tput civis
elif [ "$_nlist_has_terminfo" = "1" ]; then
[ "$1" = "1" ] && { [ -n "$terminfo[cvvis]" ] && echo -n "$terminfo[cvvis]";
[ -n "$terminfo[cnorm]" ] && echo -n "$terminfo[cnorm]" }
[ "$1" = "0" ] && [ -n "$terminfo[civis]" ] && echo -n "$terminfo[civis]"
[ "$1" = "1" ] && { [ -n $terminfo[cvvis] ] && echo -n $terminfo[cvvis];
[ -n $terminfo[cnorm] ] && echo -n $terminfo[cnorm] }
[ "$1" = "0" ] && [ -n $terminfo[civis] ] && echo -n $terminfo[civis]
fi
}