mirror of
https://github.com/robbyrussell/oh-my-zsh.git
synced 2026-04-27 16:53:30 +02:00
Compare commits
14 Commits
1708d84b70
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 278ee100fc | |||
| 52c830cd32 | |||
| 8c3cce964a | |||
| d50115afd6 | |||
| 232c6e4d8d | |||
| 50c56eb49b | |||
| bbe8cace5a | |||
| 349b9e49ce | |||
| a4ee4daf3c | |||
| 7a6357cbf6 | |||
| 106b887c1f | |||
| e42ac8c57b | |||
| 061f773dd3 | |||
| c53cfb2de4 |
@@ -46,7 +46,7 @@ dependencies:
|
|||||||
plugins/z:
|
plugins/z:
|
||||||
branch: master
|
branch: master
|
||||||
repo: agkozak/zsh-z
|
repo: agkozak/zsh-z
|
||||||
version: cf9225feebfae55e557e103e95ce20eca5eff270
|
version: ae10ba3f4674c24ac353fd34deb2fd9f7b061055
|
||||||
precopy: |
|
precopy: |
|
||||||
set -e
|
set -e
|
||||||
test -e README.md && mv -f README.md MANUAL.md
|
test -e README.md && mv -f README.md MANUAL.md
|
||||||
|
|||||||
@@ -4,6 +4,9 @@ on:
|
|||||||
schedule:
|
schedule:
|
||||||
- cron: "0 6 * * 0"
|
- cron: "0 6 * * 0"
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
check:
|
check:
|
||||||
name: Check for updates
|
name: Check for updates
|
||||||
@@ -13,7 +16,7 @@ jobs:
|
|||||||
contents: write # this is needed to push commits and branches
|
contents: write # this is needed to push commits and branches
|
||||||
steps:
|
steps:
|
||||||
- name: Harden the runner (Audit all outbound calls)
|
- name: Harden the runner (Audit all outbound calls)
|
||||||
uses: step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176 # v2.17.0
|
uses: step-security/harden-runner@8d3c67de8e2fe68ef647c8db1e6a09f647780f40 # v2.19.0
|
||||||
with:
|
with:
|
||||||
egress-policy: audit
|
egress-policy: audit
|
||||||
|
|
||||||
@@ -23,9 +26,9 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- name: Authenticate as @ohmyzsh
|
- name: Authenticate as @ohmyzsh
|
||||||
id: generate-token
|
id: generate-token
|
||||||
uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0
|
uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
|
||||||
with:
|
with:
|
||||||
app-id: ${{ secrets.OHMYZSH_APP_ID }}
|
client-id: ${{ secrets.OHMYZSH_CLIENT_ID }}
|
||||||
private-key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }}
|
private-key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }}
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
certifi==2026.2.25
|
certifi==2026.4.22
|
||||||
charset-normalizer==3.4.7
|
charset-normalizer==3.4.7
|
||||||
idna==3.11
|
idna==3.13
|
||||||
PyYAML==6.0.3
|
PyYAML==6.0.3
|
||||||
requests==2.33.1
|
requests==2.33.1
|
||||||
semver==3.0.4
|
semver==3.0.4
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ jobs:
|
|||||||
- macos-latest
|
- macos-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Harden the runner (Audit all outbound calls)
|
- name: Harden the runner (Audit all outbound calls)
|
||||||
uses: step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176 # v2.17.0
|
uses: step-security/harden-runner@8d3c67de8e2fe68ef647c8db1e6a09f647780f40 # v2.19.0
|
||||||
with:
|
with:
|
||||||
egress-policy: audit
|
egress-policy: audit
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ jobs:
|
|||||||
- test
|
- test
|
||||||
steps:
|
steps:
|
||||||
- name: Harden the runner (Audit all outbound calls)
|
- name: Harden the runner (Audit all outbound calls)
|
||||||
uses: step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176 # v2.17.0
|
uses: step-security/harden-runner@8d3c67de8e2fe68ef647c8db1e6a09f647780f40 # v2.19.0
|
||||||
with:
|
with:
|
||||||
egress-policy: audit
|
egress-policy: audit
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ jobs:
|
|||||||
if: github.repository == 'ohmyzsh/ohmyzsh'
|
if: github.repository == 'ohmyzsh/ohmyzsh'
|
||||||
steps:
|
steps:
|
||||||
- name: Harden the runner (Audit all outbound calls)
|
- name: Harden the runner (Audit all outbound calls)
|
||||||
uses: step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176 # v2.17.0
|
uses: step-security/harden-runner@8d3c67de8e2fe68ef647c8db1e6a09f647780f40 # v2.19.0
|
||||||
with:
|
with:
|
||||||
egress-policy: audit
|
egress-policy: audit
|
||||||
|
|
||||||
|
|||||||
@@ -17,14 +17,14 @@ jobs:
|
|||||||
if: github.repository == 'ohmyzsh/ohmyzsh'
|
if: github.repository == 'ohmyzsh/ohmyzsh'
|
||||||
steps:
|
steps:
|
||||||
- name: Harden the runner (Audit all outbound calls)
|
- name: Harden the runner (Audit all outbound calls)
|
||||||
uses: step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176 # v2.17.0
|
uses: step-security/harden-runner@8d3c67de8e2fe68ef647c8db1e6a09f647780f40 # v2.19.0
|
||||||
with:
|
with:
|
||||||
egress-policy: audit
|
egress-policy: audit
|
||||||
- name: Authenticate as @ohmyzsh
|
- name: Authenticate as @ohmyzsh
|
||||||
id: generate-token
|
id: generate-token
|
||||||
uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0
|
uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
|
||||||
with:
|
with:
|
||||||
app-id: ${{ secrets.OHMYZSH_APP_ID }}
|
client-id: ${{ secrets.OHMYZSH_CLIENT_ID }}
|
||||||
private-key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }}
|
private-key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }}
|
||||||
- name: Read project data
|
- name: Read project data
|
||||||
env:
|
env:
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Harden the runner (Audit all outbound calls)
|
- name: Harden the runner (Audit all outbound calls)
|
||||||
uses: step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176 # v2.17.0
|
uses: step-security/harden-runner@8d3c67de8e2fe68ef647c8db1e6a09f647780f40 # v2.19.0
|
||||||
with:
|
with:
|
||||||
egress-policy: audit
|
egress-policy: audit
|
||||||
|
|
||||||
@@ -60,6 +60,6 @@ jobs:
|
|||||||
retention-days: 5
|
retention-days: 5
|
||||||
|
|
||||||
- name: "Upload to code-scanning"
|
- name: "Upload to code-scanning"
|
||||||
uses: github/codeql-action/upload-sarif@c10b8064de6f491fea524254123dbe5e09572f13 # v4.35.1
|
uses: github/codeql-action/upload-sarif@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
|
||||||
with:
|
with:
|
||||||
sarif_file: results.sarif
|
sarif_file: results.sarif
|
||||||
|
|||||||
+2
-2
@@ -36,7 +36,7 @@ function _omz_git_prompt_info() {
|
|||||||
&& upstream=" -> ${upstream}"
|
&& upstream=" -> ${upstream}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "${ZSH_THEME_GIT_PROMPT_PREFIX}${ref:gs/%/%%}${upstream:gs/%/%%}$(parse_git_dirty)${ZSH_THEME_GIT_PROMPT_SUFFIX}"
|
echo "${ZSH_THEME_GIT_PROMPT_PREFIX}${ref//\%/%%}${upstream//\%/%%}$(parse_git_dirty)${ZSH_THEME_GIT_PROMPT_SUFFIX}"
|
||||||
}
|
}
|
||||||
|
|
||||||
function _omz_git_prompt_status() {
|
function _omz_git_prompt_status() {
|
||||||
@@ -255,7 +255,7 @@ function git_remote_status() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -n $ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_DETAILED ]]; then
|
if [[ -n $ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_DETAILED ]]; then
|
||||||
git_remote_status="$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_PREFIX${remote:gs/%/%%}$git_remote_status_detailed$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_SUFFIX"
|
git_remote_status="$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_PREFIX${remote//\%/%%}$git_remote_status_detailed$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_SUFFIX"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo $git_remote_status
|
echo $git_remote_status
|
||||||
|
|||||||
@@ -67,6 +67,9 @@ function bgnotify_appid {
|
|||||||
elif [[ -n $WAYLAND_DISPLAY ]] && ([[ -n $SWAYSOCK ]] || [[ -n $I3SOCK ]]) && (( ${+commands[swaymsg]} )); then # wayland+sway
|
elif [[ -n $WAYLAND_DISPLAY ]] && ([[ -n $SWAYSOCK ]] || [[ -n $I3SOCK ]]) && (( ${+commands[swaymsg]} )); then # wayland+sway
|
||||||
local app_id=$(bgnotify_find_sway_appid)
|
local app_id=$(bgnotify_find_sway_appid)
|
||||||
[[ -n "$app_id" ]] && echo "$app_id" || echo $EPOCHSECONDS
|
[[ -n "$app_id" ]] && echo "$app_id" || echo $EPOCHSECONDS
|
||||||
|
elif [[ -n $NIRI_SOCKET ]]; then # niri
|
||||||
|
local app_id=$(bgnotify_find_niri_appid)
|
||||||
|
[[ -n "$app_id" ]] && echo "$app_id" || echo $EPOCHSECONDS
|
||||||
elif [[ -z $WAYLAND_DISPLAY ]] && [[ -n $DISPLAY ]] && (( ${+commands[xprop]} )); then
|
elif [[ -z $WAYLAND_DISPLAY ]] && [[ -n $DISPLAY ]] && (( ${+commands[xprop]} )); then
|
||||||
xprop -root _NET_ACTIVE_WINDOW 2>/dev/null | cut -d' ' -f5
|
xprop -root _NET_ACTIVE_WINDOW 2>/dev/null | cut -d' ' -f5
|
||||||
else
|
else
|
||||||
@@ -106,6 +109,12 @@ function bgnotify_find_sway_appid {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function bgnotify_find_niri_appid {
|
||||||
|
if (( ${+commands[jq]} )); then
|
||||||
|
niri msg -j windows | jq '.[] | select(.is_focused) | {app_id, id} | join(",")'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function bgnotify_programid {
|
function bgnotify_programid {
|
||||||
case "$TERM_PROGRAM" in
|
case "$TERM_PROGRAM" in
|
||||||
iTerm.app) echo 'com.googlecode.iterm2' ;;
|
iTerm.app) echo 'com.googlecode.iterm2' ;;
|
||||||
|
|||||||
@@ -35,13 +35,16 @@ plugins=(... kubectl)
|
|||||||
| kgpl | `kgp -l` | Get pods by label. Example: `kgpl "app=myapp" -n myns` |
|
| kgpl | `kgp -l` | Get pods by label. Example: `kgpl "app=myapp" -n myns` |
|
||||||
| kgpn | `kgp -n` | Get pods by namespace. Example: `kgpn kube-system` |
|
| kgpn | `kgp -n` | Get pods by namespace. Example: `kgpn kube-system` |
|
||||||
| kgpsl | `kubectl get pods --show-labels` | List all pods in ps output format with labels |
|
| kgpsl | `kubectl get pods --show-labels` | List all pods in ps output format with labels |
|
||||||
|
| kgpa | `kubectl get pods --all-namespaces` | List all pods in ps output format across all namespaces |
|
||||||
| kgpw | `kgp --watch` | After listing/getting the requested object, watch for changes |
|
| kgpw | `kgp --watch` | After listing/getting the requested object, watch for changes |
|
||||||
| kgpwide | `kgp -o wide` | Output in plain-text format with any additional information. For pods, the node name is included |
|
| kgpwide | `kgp -o wide` | Output in plain-text format with any additional information. For pods, the node name is included |
|
||||||
|
| kgpall | `kubectl get pods --all-namespaces -o wide` | List all pods across all namespaces in wide output format (including node name) |
|
||||||
| kep | `kubectl edit pods` | Edit pods from the default editor |
|
| kep | `kubectl edit pods` | Edit pods from the default editor |
|
||||||
| kdp | `kubectl describe pods` | Describe all pods |
|
| kdp | `kubectl describe pods` | Describe all pods |
|
||||||
| kdelp | `kubectl delete pods` | Delete all pods matching passed arguments |
|
| kdelp | `kubectl delete pods` | Delete all pods matching passed arguments |
|
||||||
| | | **Service management** |
|
| | | **Service management** |
|
||||||
| kgs | `kubectl get svc` | List all services in ps output format |
|
| kgs | `kubectl get svc` | List all services in ps output format |
|
||||||
|
| kgsa | `kubectl get svc --all-namespaces` | List all services across all namespaces |
|
||||||
| kgsw | `kgs --watch` | After listing all services, watch for changes |
|
| kgsw | `kgs --watch` | After listing all services, watch for changes |
|
||||||
| kgswide | `kgs -o wide` | After listing all services, output in plain-text format with any additional information |
|
| kgswide | `kgs -o wide` | After listing all services, output in plain-text format with any additional information |
|
||||||
| kes | `kubectl edit svc` | Edit services(svc) from the default editor |
|
| kes | `kubectl edit svc` | Edit services(svc) from the default editor |
|
||||||
@@ -49,6 +52,7 @@ plugins=(... kubectl)
|
|||||||
| kdels | `kubectl delete svc` | Delete all services matching passed argument |
|
| kdels | `kubectl delete svc` | Delete all services matching passed argument |
|
||||||
| | | **Ingress management** |
|
| | | **Ingress management** |
|
||||||
| kgi | `kubectl get ingress` | List ingress resources in ps output format |
|
| kgi | `kubectl get ingress` | List ingress resources in ps output format |
|
||||||
|
| kgia | `kubectl get ingress --all-namespaces` | List ingress resources across all namespaces |
|
||||||
| kei | `kubectl edit ingress` | Edit ingress resource from the default editor |
|
| kei | `kubectl edit ingress` | Edit ingress resource from the default editor |
|
||||||
| kdi | `kubectl describe ingress` | Describe ingress resource in detail |
|
| kdi | `kubectl describe ingress` | Describe ingress resource in detail |
|
||||||
| kdeli | `kubectl delete ingress` | Delete ingress resources matching passed argument |
|
| kdeli | `kubectl delete ingress` | Delete ingress resources matching passed argument |
|
||||||
@@ -60,15 +64,18 @@ plugins=(... kubectl)
|
|||||||
| kdelns | `kubectl delete namespace` | Delete the namespace. WARNING! This deletes everything in the namespace |
|
| kdelns | `kubectl delete namespace` | Delete the namespace. WARNING! This deletes everything in the namespace |
|
||||||
| | | **ConfigMap management** |
|
| | | **ConfigMap management** |
|
||||||
| kgcm | `kubectl get configmaps` | List the configmaps in ps output format |
|
| kgcm | `kubectl get configmaps` | List the configmaps in ps output format |
|
||||||
|
| kgcma | `kubectl get configmaps --all-namespaces` | List configmaps across all namespaces |
|
||||||
| kecm | `kubectl edit configmap` | Edit configmap resource from the default editor |
|
| kecm | `kubectl edit configmap` | Edit configmap resource from the default editor |
|
||||||
| kdcm | `kubectl describe configmap` | Describe configmap resource in detail |
|
| kdcm | `kubectl describe configmap` | Describe configmap resource in detail |
|
||||||
| kdelcm | `kubectl delete configmap` | Delete the configmap |
|
| kdelcm | `kubectl delete configmap` | Delete the configmap |
|
||||||
| | | **Secret management** |
|
| | | **Secret management** |
|
||||||
| kgsec | `kubectl get secret` | Get secret for decoding |
|
| kgsec | `kubectl get secret` | Get secret for decoding |
|
||||||
|
| kgseca | `kubectl get secret --all-namespaces` | List secrets across all namespaces |
|
||||||
| kdsec | `kubectl describe secret` | Describe secret resource in detail |
|
| kdsec | `kubectl describe secret` | Describe secret resource in detail |
|
||||||
| kdelsec | `kubectl delete secret` | Delete the secret |
|
| kdelsec | `kubectl delete secret` | Delete the secret |
|
||||||
| | | **Deployment management** |
|
| | | **Deployment management** |
|
||||||
| kgd | `kubectl get deployment` | Get the deployment |
|
| kgd | `kubectl get deployment` | Get the deployment |
|
||||||
|
| kgda | `kubectl get deployment --all-namespaces` | List deployments across all namespaces |
|
||||||
| kgdw | `kgd --watch` | After getting the deployment, watch for changes |
|
| kgdw | `kgd --watch` | After getting the deployment, watch for changes |
|
||||||
| kgdwide | `kgd -o wide` | After getting the deployment, output in plain-text format with any additional information |
|
| kgdwide | `kgd -o wide` | After getting the deployment, output in plain-text format with any additional information |
|
||||||
| ked | `kubectl edit deployment` | Edit deployment resource from the default editor |
|
| ked | `kubectl edit deployment` | Edit deployment resource from the default editor |
|
||||||
@@ -91,7 +98,13 @@ plugins=(... kubectl)
|
|||||||
| kgaa | `kubectl get all --all-namespaces` | List the requested object(s) across all namespaces |
|
| kgaa | `kubectl get all --all-namespaces` | List the requested object(s) across all namespaces |
|
||||||
| | | **Logs** |
|
| | | **Logs** |
|
||||||
| kl | `kubectl logs` | Print the logs for a container or resource |
|
| kl | `kubectl logs` | Print the logs for a container or resource |
|
||||||
|
| kl1h | `kubectl logs --since 1h` | Print logs from the last hour for a container or resource |
|
||||||
|
| kl1m | `kubectl logs --since 1m` | Print logs from the last minute for a container or resource |
|
||||||
|
| kl1s | `kubectl logs --since 1s` | Print logs from the last second for a container or resource |
|
||||||
| klf | `kubectl logs -f` | Stream the logs for a container or resource (follow) |
|
| klf | `kubectl logs -f` | Stream the logs for a container or resource (follow) |
|
||||||
|
| klf1h | `kubectl logs --since 1h -f` | Stream logs from the last hour for a container or resource (follow) |
|
||||||
|
| klf1m | `kubectl logs --since 1m -f` | Stream logs from the last minute for a container or resource (follow) |
|
||||||
|
| klf1s | `kubectl logs --since 1s -f` | Stream logs from the last second for a container or resource (follow) |
|
||||||
| | | **File copy** |
|
| | | **File copy** |
|
||||||
| kcp | `kubectl cp` | Copy files and directories to and from containers |
|
| kcp | `kubectl cp` | Copy files and directories to and from containers |
|
||||||
| | | **Node management** |
|
| | | **Node management** |
|
||||||
@@ -102,12 +115,14 @@ plugins=(... kubectl)
|
|||||||
| kdelno | `kubectl delete node` | Delete the node |
|
| kdelno | `kubectl delete node` | Delete the node |
|
||||||
| | | **Persistent Volume Claim management** |
|
| | | **Persistent Volume Claim management** |
|
||||||
| kgpvc | `kubectl get pvc` | List all PVCs |
|
| kgpvc | `kubectl get pvc` | List all PVCs |
|
||||||
|
| kgpvca | `kubectl get pvc --all-namespaces` | List all PVCs across all namespaces |
|
||||||
| kgpvcw | `kgpvc --watch` | After listing/getting the requested object, watch for changes |
|
| kgpvcw | `kgpvc --watch` | After listing/getting the requested object, watch for changes |
|
||||||
| kepvc | `kubectl edit pvc` | Edit pvcs from the default editor |
|
| kepvc | `kubectl edit pvc` | Edit pvcs from the default editor |
|
||||||
| kdpvc | `kubectl describe pvc` | Describe all pvcs |
|
| kdpvc | `kubectl describe pvc` | Describe all pvcs |
|
||||||
| kdelpvc | `kubectl delete pvc` | Delete all pvcs matching passed arguments |
|
| kdelpvc | `kubectl delete pvc` | Delete all pvcs matching passed arguments |
|
||||||
| | | **StatefulSets management** |
|
| | | **StatefulSets management** |
|
||||||
| kgss | `kubectl get statefulset` | List the statefulsets in ps format |
|
| kgss | `kubectl get statefulset` | List the statefulsets in ps format |
|
||||||
|
| kgssa | `kubectl get statefulset --all-namespaces` | List statefulsets across all namespaces |
|
||||||
| kgssw | `kgss --watch` | After getting the list of statefulsets, watch for changes |
|
| kgssw | `kgss --watch` | After getting the list of statefulsets, watch for changes |
|
||||||
| kgsswide | `kgss -o wide` | After getting the statefulsets, output in plain-text format with any additional information |
|
| kgsswide | `kgss -o wide` | After getting the statefulsets, output in plain-text format with any additional information |
|
||||||
| kess | `kubectl edit statefulset` | Edit statefulset resource from the default editor |
|
| kess | `kubectl edit statefulset` | Edit statefulset resource from the default editor |
|
||||||
@@ -121,6 +136,7 @@ plugins=(... kubectl)
|
|||||||
| kdelsa | `kubectl delete sa` | Delete the service account |
|
| kdelsa | `kubectl delete sa` | Delete the service account |
|
||||||
| | | **DaemonSet management** |
|
| | | **DaemonSet management** |
|
||||||
| kgds | `kubectl get daemonset` | List all DaemonSets in ps output format |
|
| kgds | `kubectl get daemonset` | List all DaemonSets in ps output format |
|
||||||
|
| kgdsa | `kubectl get daemonset --all-namespaces` | List all DaemonSets across all namespaces |
|
||||||
| kgdsw | `kgds --watch` | After listing all DaemonSets, watch for changes |
|
| kgdsw | `kgds --watch` | After listing all DaemonSets, watch for changes |
|
||||||
| keds | `kubectl edit daemonset` | Edit DaemonSets from the default editor |
|
| keds | `kubectl edit daemonset` | Edit DaemonSets from the default editor |
|
||||||
| kdds | `kubectl describe daemonset` | Describe all DaemonSets in detail |
|
| kdds | `kubectl describe daemonset` | Describe all DaemonSets in detail |
|
||||||
|
|||||||
@@ -15,7 +15,12 @@ _togglePoetryShell() {
|
|||||||
# Activate the environment if in a Poetry directory and no environment is currently active
|
# Activate the environment if in a Poetry directory and no environment is currently active
|
||||||
if [[ $in_poetry_dir -eq 1 ]] && [[ $poetry_active -ne 1 ]]; then
|
if [[ $in_poetry_dir -eq 1 ]] && [[ $poetry_active -ne 1 ]]; then
|
||||||
venv_dir=$(poetry env info --path 2>/dev/null)
|
venv_dir=$(poetry env info --path 2>/dev/null)
|
||||||
if [[ -n "$venv_dir" ]]; then
|
# Handle case where poetry returns "." for in-project virtual environments
|
||||||
|
if [[ "$venv_dir" == "." ]]; then
|
||||||
|
venv_dir="$PWD/.venv"
|
||||||
|
fi
|
||||||
|
# Only proceed if venv_dir is set and the activate script exists
|
||||||
|
if [[ -n "$venv_dir" && -f "${venv_dir}/bin/activate" ]]; then
|
||||||
export poetry_active=1
|
export poetry_active=1
|
||||||
export poetry_dir="$PWD"
|
export poetry_dir="$PWD"
|
||||||
source "${venv_dir}/bin/activate"
|
source "${venv_dir}/bin/activate"
|
||||||
|
|||||||
@@ -87,8 +87,8 @@ _build_tmux_alias "tkss" "kill-session" "-t"
|
|||||||
|
|
||||||
unfunction _build_tmux_alias
|
unfunction _build_tmux_alias
|
||||||
|
|
||||||
# Determine if the terminal supports 256 colors
|
# Determine if the terminal supports at least 256 colors
|
||||||
if [[ $terminfo[colors] == 256 ]]; then
|
if (( ${+terminfo[colors]} )) && [[ $terminfo[colors] -ge 256 ]]; then
|
||||||
export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITH_256COLOR
|
export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITH_256COLOR
|
||||||
else
|
else
|
||||||
export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR
|
export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2018-2025 Alexandros Kozak
|
Copyright (c) 2018-2026 Alexandros Kozak
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|||||||
+13
-17
@@ -24,16 +24,18 @@ Zsh-z is a drop-in replacement for `rupa/z` and will, by default, use the same d
|
|||||||
- [Case Sensitivity](#case-sensitivity)
|
- [Case Sensitivity](#case-sensitivity)
|
||||||
- [`ZSHZ_UNCOMMON`](#zshz_uncommon)
|
- [`ZSHZ_UNCOMMON`](#zshz_uncommon)
|
||||||
- [Making `--add` work for you](#making---add-work-for-you)
|
- [Making `--add` work for you](#making---add-work-for-you)
|
||||||
- [Other Improvements and Fixes](#other-improvements-and-fixes)
|
- [Other Improvements to the Original Functionality of `rupa/z`](#other-improvements-to-the-original-functionality-of-rupa-z)
|
||||||
- [Migrating from Other Tools](#migrating-from-other-tools)
|
- [Migrating from Other Tools](#migrating-from-other-tools)
|
||||||
- [`COMPLETE_ALIASES`](#complete_aliases)
|
- [`COMPLETE_ALIASES`](#complete_aliases)
|
||||||
- [Known Bugs](#known-bugs)
|
|
||||||
|
|
||||||
## News
|
## News
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Here are the latest features and updates.</summary>
|
<summary>Here are the latest features and updates.</summary>
|
||||||
|
|
||||||
|
- March 31, 2026
|
||||||
|
+ When the user hits Tab after entering a command-line argument that uses spaces as wildcards (e.g., `z us lo bi`), the command line is clear of detritus (i.e., it looks like `z /usr/local/bin` instead of `z us lo /usr/local/bin`).
|
||||||
|
+ Improved test for Docker containers.
|
||||||
- August 24, 2023
|
- August 24, 2023
|
||||||
+ Zsh-z will now run when `setopt NO_UNSET` has been enabled (props @ntninja).
|
+ Zsh-z will now run when `setopt NO_UNSET` has been enabled (props @ntninja).
|
||||||
- August 23, 2023
|
- August 23, 2023
|
||||||
@@ -50,7 +52,7 @@ Zsh-z is a drop-in replacement for `rupa/z` and will, by default, use the same d
|
|||||||
+ A bug was fixed which was preventing paths with spaces in them from being updated ([#61](https://github.com/agkozak/zsh-z/issues/61)).
|
+ A bug was fixed which was preventing paths with spaces in them from being updated ([#61](https://github.com/agkozak/zsh-z/issues/61)).
|
||||||
+ If writing to the temporary database file fails, the database will not be clobbered (props @mafredri).
|
+ If writing to the temporary database file fails, the database will not be clobbered (props @mafredri).
|
||||||
- December 19, 2021
|
- December 19, 2021
|
||||||
+ ZSH-z will now display tildes for `HOME` during completion when `ZSHZ_TILDE=1` has been set.
|
+ Zsh-z will now display tildes for `HOME` during completion when `ZSHZ_TILDE=1` has been set.
|
||||||
- November 11, 2021
|
- November 11, 2021
|
||||||
+ A bug was fixed which was preventing ranks from being incremented.
|
+ A bug was fixed which was preventing ranks from being incremented.
|
||||||
+ `--add` has been made to work with relative paths and has been documented for the user.
|
+ `--add` has been made to work with relative paths and has been documented for the user.
|
||||||
@@ -71,7 +73,7 @@ Zsh-z is a drop-in replacement for `rupa/z` and will, by default, use the same d
|
|||||||
- July 29, 2021
|
- July 29, 2021
|
||||||
+ Temporarily disabling the use of `print -v`, which was mangling CJK multibyte strings.
|
+ Temporarily disabling the use of `print -v`, which was mangling CJK multibyte strings.
|
||||||
- July 27, 2021
|
- July 27, 2021
|
||||||
+ Internal escaping of path names now works with older versions of ZSH.
|
+ Internal escaping of path names now works with older versions of Zsh.
|
||||||
+ Zsh-z now detects and discards any incomplete or incorrectly formatted database entries.
|
+ Zsh-z now detects and discards any incomplete or incorrectly formatted database entries.
|
||||||
- July 10, 2021
|
- July 10, 2021
|
||||||
+ Setting `ZSHZ_TRAILING_SLASH=1` makes it so that a search pattern ending in `/` can match the end of a path; e.g. `z foo/` can match `/path/to/foo`.
|
+ Setting `ZSHZ_TRAILING_SLASH=1` makes it so that a search pattern ending in `/` can match the end of a path; e.g. `z foo/` can match `/path/to/foo`.
|
||||||
@@ -79,12 +81,12 @@ Zsh-z is a drop-in replacement for `rupa/z` and will, by default, use the same d
|
|||||||
+ Setting `ZSHZ_TILDE=1` displays the `HOME` directory as `~`.
|
+ Setting `ZSHZ_TILDE=1` displays the `HOME` directory as `~`.
|
||||||
- May 7, 2021
|
- May 7, 2021
|
||||||
+ Setting `ZSHZ_ECHO=1` will cause Zsh-z to display the new path when you change directories.
|
+ Setting `ZSHZ_ECHO=1` will cause Zsh-z to display the new path when you change directories.
|
||||||
+ Better escaping of path names to deal paths containing the characters ``\`()[]``.
|
+ Better escaping of path names to deal with paths containing the characters ``\`()[]``.
|
||||||
- February 15, 2021
|
- February 15, 2021
|
||||||
+ Ranks are displayed the way `rupa/z` now displays them, i.e. as large integers. This should help Zsh-z to integrate with other tools.
|
+ Ranks are displayed the way `rupa/z` now displays them, i.e. as large integers. This should help Zsh-z to integrate with other tools.
|
||||||
- January 31, 2021
|
- January 31, 2021
|
||||||
+ Zsh-z is now efficient enough that, on MSYS2 and Cygwin, it is faster to run it in the foreground than it is to fork a subshell for it.
|
+ Zsh-z is now efficient enough that, on MSYS2 and Cygwin, it is faster to run it in the foreground than it is to fork a subshell for it.
|
||||||
+ `_zshz_precmd` simply returns if `PWD` is `HOME` or in `ZSH_EXCLUDE_DIRS`, rather than waiting for `zshz` to do that.
|
+ `_zshz_precmd` simply returns if `PWD` is `HOME` or in `ZSHZ_EXCLUDE_DIRS`, rather than waiting for `zshz` to do that.
|
||||||
- January 17, 2021
|
- January 17, 2021
|
||||||
+ Made sure that the `PUSHD_IGNORE_DUPS` option is respected.
|
+ Made sure that the `PUSHD_IGNORE_DUPS` option is respected.
|
||||||
- January 14, 2021
|
- January 14, 2021
|
||||||
@@ -171,7 +173,7 @@ is uncommented. Then find the section that specifies which modules are to be loa
|
|||||||
'completion' \
|
'completion' \
|
||||||
'prompt'
|
'prompt'
|
||||||
|
|
||||||
Add a backslash to the end of the last line add `'zsh-z'` to the list, e.g.,
|
Add a backslash to the end of the last line and add `'zsh-z'` to the list, e.g.,
|
||||||
|
|
||||||
zstyle ':prezto:load' pmodule \
|
zstyle ':prezto:load' pmodule \
|
||||||
'environment' \
|
'environment' \
|
||||||
@@ -279,7 +281,7 @@ Zsh-z has environment variables (they all begin with `ZSHZ_`) that change its be
|
|||||||
* `ZSHZ_OWNER` allows usage when in `sudo -s` mode (default: empty)
|
* `ZSHZ_OWNER` allows usage when in `sudo -s` mode (default: empty)
|
||||||
* `ZSHZ_TILDE` displays the name of the `HOME` directory as a `~` (default: `0`)
|
* `ZSHZ_TILDE` displays the name of the `HOME` directory as a `~` (default: `0`)
|
||||||
* `ZSHZ_TRAILING_SLASH` makes it so that a search pattern ending in `/` can match the final element in a path; e.g., `z foo/` can match `/path/to/foo` (default: `0`)
|
* `ZSHZ_TRAILING_SLASH` makes it so that a search pattern ending in `/` can match the final element in a path; e.g., `z foo/` can match `/path/to/foo` (default: `0`)
|
||||||
* `ZSHZ_UNCOMMON` changes the logic used to calculate the directory jumped to; [see below](#zshz_uncommon`) (default: `0`)
|
* `ZSHZ_UNCOMMON` changes the logic used to calculate the directory jumped to; [see below](#zshz_uncommon) (default: `0`)
|
||||||
|
|
||||||
## Case sensitivity
|
## Case sensitivity
|
||||||
|
|
||||||
@@ -324,7 +326,7 @@ A good example might involve a directory tree that has Git repositories within i
|
|||||||
|
|
||||||
(As a Zsh user, I tend to use `**` instead of `find`, but it is good to see how deep your directory trees go before doing that.)
|
(As a Zsh user, I tend to use `**` instead of `find`, but it is good to see how deep your directory trees go before doing that.)
|
||||||
|
|
||||||
## Other Improvements and Fixes
|
## Other Improvements to the Original Functionality of `rupa/z`
|
||||||
|
|
||||||
* `z -x` works, with the help of `chpwd_functions`.
|
* `z -x` works, with the help of `chpwd_functions`.
|
||||||
* Zsh-z is compatible with Solaris.
|
* Zsh-z is compatible with Solaris.
|
||||||
@@ -336,6 +338,7 @@ A good example might involve a directory tree that has Git repositories within i
|
|||||||
* Completions now work with options `-c`, `-r`, and `-t`.
|
* Completions now work with options `-c`, `-r`, and `-t`.
|
||||||
* If `~/foo` and `~/foob` are matches, `~/foo` is no longer considered the common root. Only a common parent directory can be a common root.
|
* If `~/foo` and `~/foob` are matches, `~/foo` is no longer considered the common root. Only a common parent directory can be a common root.
|
||||||
* `z -x` and the new, recursive `z -xR` can now accept an argument so that you can remove directories other than `PWD` from the database.
|
* `z -x` and the new, recursive `z -xR` can now accept an argument so that you can remove directories other than `PWD` from the database.
|
||||||
|
* Zsh-z inherits `rupa/z`'s behavior of allowing spaces as wildcards (e.g., `z us lo bi` might take you to `/usr/local/bin`), but now completion of such command lines does not result in visual detritus.
|
||||||
|
|
||||||
## Migrating from Other Tools
|
## Migrating from Other Tools
|
||||||
|
|
||||||
@@ -347,7 +350,7 @@ If you are coming to Zsh-z (or even to the original `rupa/z`, for that matter) f
|
|||||||
|
|
||||||
## `COMPLETE_ALIASES`
|
## `COMPLETE_ALIASES`
|
||||||
|
|
||||||
`z`, or any alternative you set up using `$ZSH_CMD` or `$_Z_CMD`, is an alias. `setopt COMPLETE_ALIASES` divorces the tab completion for aliases from the underlying commands they invoke, so if you enable `COMPLETE_ALIASES`, tab completion for Zsh-z will be broken. You can get it working again, however, by adding under
|
`z`, or any alternative you set up using `$ZSHZ_CMD` or `$_Z_CMD`, is an alias. `setopt COMPLETE_ALIASES` divorces the tab completion for aliases from the underlying commands they invoke, so if you enable `COMPLETE_ALIASES`, tab completion for Zsh-z will be broken. You can get it working again, however, by adding under
|
||||||
|
|
||||||
setopt COMPLETE_ALIASES
|
setopt COMPLETE_ALIASES
|
||||||
|
|
||||||
@@ -356,10 +359,3 @@ the line
|
|||||||
compdef _zshz ${ZSHZ_CMD:-${_Z_CMD:-z}}
|
compdef _zshz ${ZSHZ_CMD:-${_Z_CMD:-z}}
|
||||||
|
|
||||||
That will re-bind `z` or the command of your choice to the underlying Zsh-z function.
|
That will re-bind `z` or the command of your choice to the underlying Zsh-z function.
|
||||||
|
|
||||||
## Known Bug
|
|
||||||
It is possible to run a completion on a string with spaces in it, e.g., `z us bi<TAB>` might take you to `/usr/local/bin`. This works, but as things stand, after the completion the command line reads
|
|
||||||
|
|
||||||
z us /usr/local/bin.
|
|
||||||
|
|
||||||
You get where you want to go, but the detritus on the command line is annoying. This is also a problem in `rupa/z`, but I am keen on eventually eliminating this glitch. Advice is welcome.
|
|
||||||
|
|||||||
+2
-17
@@ -5,7 +5,7 @@
|
|||||||
#
|
#
|
||||||
# https://github.com/agkozak/zsh-z
|
# https://github.com/agkozak/zsh-z
|
||||||
#
|
#
|
||||||
# Copyright (c) 2018-2023 Alexandros Kozak
|
# Copyright (c) 2018-2026 Alexandros Kozak
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
# of this software and associated documentation files (the "Software"), to deal
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
@@ -37,25 +37,10 @@ emulate -L zsh
|
|||||||
(( ZSHZ_DEBUG )) &&
|
(( ZSHZ_DEBUG )) &&
|
||||||
setopt LOCAL_OPTIONS WARN_CREATE_GLOBAL NO_WARN_NESTED_VAR 2> /dev/null
|
setopt LOCAL_OPTIONS WARN_CREATE_GLOBAL NO_WARN_NESTED_VAR 2> /dev/null
|
||||||
|
|
||||||
# TODO: This routine currently reproduces z's feature of allowing spaces to be
|
|
||||||
# used as wildcards in completions, so that
|
|
||||||
#
|
|
||||||
# z us lo bi
|
|
||||||
#
|
|
||||||
# can expand to
|
|
||||||
#
|
|
||||||
# z /usr/local/bin
|
|
||||||
#
|
|
||||||
# but it also reproduces z's buggy display on the commandline, viz.
|
|
||||||
#
|
|
||||||
# z us lo /usr/local/bin
|
|
||||||
#
|
|
||||||
# Address.
|
|
||||||
|
|
||||||
local completions expl completion
|
local completions expl completion
|
||||||
local -a completion_list
|
local -a completion_list
|
||||||
|
|
||||||
completions=$(zshz --complete ${(@)words:1})
|
completions=$(zshz --complete "${(@)words:1}")
|
||||||
[[ -z $completions ]] && return 1
|
[[ -z $completions ]] && return 1
|
||||||
|
|
||||||
for completion in ${(f)completions[@]}; do
|
for completion in ${(f)completions[@]}; do
|
||||||
|
|||||||
+71
-4
@@ -4,7 +4,7 @@
|
|||||||
#
|
#
|
||||||
# https://github.com/agkozak/zsh-z
|
# https://github.com/agkozak/zsh-z
|
||||||
#
|
#
|
||||||
# Copyright (c) 2018-2025 Alexandros Kozak
|
# Copyright (c) 2018-2026 Alexandros Kozak
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
# of this software and associated documentation files (the "Software"), to deal
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
@@ -294,9 +294,9 @@ zshz() {
|
|||||||
owner=${ZSHZ_OWNER:-${_Z_OWNER}}
|
owner=${ZSHZ_OWNER:-${_Z_OWNER}}
|
||||||
|
|
||||||
if (( ZSHZ[USE_FLOCK] )); then
|
if (( ZSHZ[USE_FLOCK] )); then
|
||||||
# An unsual case: if inside Docker container where datafile could be bind
|
# An unusual case: if inside Docker container where datafile could be bind
|
||||||
# mounted
|
# mounted
|
||||||
if [[ -r '/proc/1/cgroup' && "$(< '/proc/1/cgroup')" == *docker* ]]; then
|
if [[ -f '/.dockerenv' || ( -r '/proc/1/cgroup' && "$(< '/proc/1/cgroup')" == *docker* ) ]]; then
|
||||||
print "$(< "$tempfile")" > "$datafile" 2> /dev/null
|
print "$(< "$tempfile")" > "$datafile" 2> /dev/null
|
||||||
${ZSHZ[RM]} -f "$tempfile"
|
${ZSHZ[RM]} -f "$tempfile"
|
||||||
# All other cases
|
# All other cases
|
||||||
@@ -960,6 +960,62 @@ add-zsh-hook chpwd _zshz_chpwd
|
|||||||
|
|
||||||
(( ${fpath[(ie)${0:A:h}]} <= ${#fpath} )) || fpath=( "${0:A:h}" "${fpath[@]}" )
|
(( ${fpath[(ie)${0:A:h}]} <= ${#fpath} )) || fpath=( "${0:A:h}" "${fpath[@]}" )
|
||||||
|
|
||||||
|
# Save the existing Tab binding
|
||||||
|
ZSHZ[TAB_BINDING]="${$(bindkey -M main '^I')##* }"
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# ZLE widget to fix spaces-as-wildcards completion
|
||||||
|
#
|
||||||
|
# When completing a Zsh-z command with multiple search terms
|
||||||
|
# (e.g. `z us lo bi'), collapse the terms into a single
|
||||||
|
# wildcard-joined word (e.g. `z us*lo*bi') before triggering
|
||||||
|
# completion. This causes compadd to replace the whole query
|
||||||
|
# with the matched path rather than just the last word.
|
||||||
|
#
|
||||||
|
# Globals:
|
||||||
|
# ZSHZ_CMD
|
||||||
|
############################################################
|
||||||
|
_zshz_zle_completion_widget() {
|
||||||
|
emulate -L zsh
|
||||||
|
local cmd=${ZSHZ_CMD:-${_Z_CMD:-z}}
|
||||||
|
|
||||||
|
# If a trailing space was added after an already-completed absolute path
|
||||||
|
# (e.g. `z /usr/local/bin '), a second Tab would otherwise re-trigger
|
||||||
|
# completion on an empty word and insert a duplicate. Bail out early.
|
||||||
|
if [[ $LBUFFER[-1] == ' ' && ${${LBUFFER% }##* } == [/~]* ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Only act when there are at least two words after the command
|
||||||
|
if [[ $LBUFFER == ${cmd}\ *\ * ]]; then
|
||||||
|
local after=${LBUFFER#${cmd} }
|
||||||
|
local -a parts flag_parts search_parts
|
||||||
|
local p past_flags=0
|
||||||
|
|
||||||
|
parts=( ${(z)after} )
|
||||||
|
for p in $parts; do
|
||||||
|
if (( ! past_flags )) && [[ $p == -[cehlrRtx]## ]]; then
|
||||||
|
flag_parts+=( $p )
|
||||||
|
else
|
||||||
|
past_flags=1
|
||||||
|
search_parts+=( $p )
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if (( ${#search_parts} > 1 )); then
|
||||||
|
LBUFFER="${cmd}${flag_parts:+ ${(j: :)flag_parts}} ${(j:*:)search_parts}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If Tab had a non-default binding, continue to use it; otherwise the default
|
||||||
|
# expand-or-complete gets used.
|
||||||
|
zle ${ZSHZ[TAB_BINDING]:-expand-or-complete}
|
||||||
|
}
|
||||||
|
|
||||||
|
zle -N _zshz_zle_completion_widget
|
||||||
|
|
||||||
|
bindkey -M main '^I' _zshz_zle_completion_widget
|
||||||
|
|
||||||
############################################################
|
############################################################
|
||||||
# zsh-z functions
|
# zsh-z functions
|
||||||
############################################################
|
############################################################
|
||||||
@@ -974,7 +1030,8 @@ ZSHZ[FUNCTIONS]='_zshz_usage
|
|||||||
zshz
|
zshz
|
||||||
_zshz_precmd
|
_zshz_precmd
|
||||||
_zshz_chpwd
|
_zshz_chpwd
|
||||||
_zshz'
|
_zshz
|
||||||
|
_zshz_zle_completion_widget'
|
||||||
|
|
||||||
############################################################
|
############################################################
|
||||||
# Enable WARN_NESTED_VAR for functions listed in
|
# Enable WARN_NESTED_VAR for functions listed in
|
||||||
@@ -1004,6 +1061,16 @@ zsh-z_plugin_unload() {
|
|||||||
add-zsh-hook -D precmd _zshz_precmd
|
add-zsh-hook -D precmd _zshz_precmd
|
||||||
add-zsh-hook -d chpwd _zshz_chpwd
|
add-zsh-hook -d chpwd _zshz_chpwd
|
||||||
|
|
||||||
|
zle -D _zshz_zle_completion_widget
|
||||||
|
|
||||||
|
# Only restore Tab binding if it is still bound to our widget; otherwise
|
||||||
|
# leave it alone.
|
||||||
|
local _zshz_current_tab
|
||||||
|
_zshz_current_tab="$(bindkey -M main '^I' 2>/dev/null || true)"
|
||||||
|
if [[ ${_zshz_current_tab##* } == _zshz_zle_completion_widget ]]; then
|
||||||
|
bindkey -M main '^I' "${ZSHZ[TAB_BINDING]:-expand-or-complete}"
|
||||||
|
fi
|
||||||
|
|
||||||
local x
|
local x
|
||||||
for x in ${=ZSHZ[FUNCTIONS]}; do
|
for x in ${=ZSHZ[FUNCTIONS]}; do
|
||||||
(( ${+functions[$x]} )) && unfunction $x
|
(( ${+functions[$x]} )) && unfunction $x
|
||||||
|
|||||||
Reference in New Issue
Block a user