mirror of
https://github.com/robbyrussell/oh-my-zsh.git
synced 2026-04-27 08:43:30 +02:00
Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3bd3893417 | |||
| 349b9e49ce | |||
| a4ee4daf3c | |||
| 7a6357cbf6 | |||
| 106b887c1f | |||
| e42ac8c57b | |||
| 061f773dd3 | |||
| c53cfb2de4 | |||
| 1708d84b70 | |||
| 46c673072e | |||
| 7c10d9839f | |||
| 103246c198 | |||
| 887a864aba | |||
| d1fb3ebfc7 | |||
| beab0c0b3c | |||
| f0e2160abb | |||
| 9e2c1548c3 | |||
| cb13cc539f | |||
| 76ffd9e22a | |||
| 11c1718983 | |||
| 9151236d1e | |||
| 7e7cb5a23c | |||
| 2614f529ce | |||
| df64afb062 | |||
| 21dbafa904 | |||
| cfad9e07f6 |
@@ -30,7 +30,7 @@ dependencies:
|
||||
plugins/kube-ps1:
|
||||
repo: jonmosco/kube-ps1
|
||||
branch: master
|
||||
version: 9b41c091d5dd4a99e58cf58b5d98a4847937b1bb
|
||||
version: e19c9ee867c5655814c384a6bf543e330e6ef1b7
|
||||
precopy: |
|
||||
set -e
|
||||
find . ! -name kube-ps1.sh ! -name LICENSE ! -name README.md -delete
|
||||
@@ -46,7 +46,7 @@ dependencies:
|
||||
plugins/z:
|
||||
branch: master
|
||||
repo: agkozak/zsh-z
|
||||
version: cf9225feebfae55e557e103e95ce20eca5eff270
|
||||
version: ae10ba3f4674c24ac353fd34deb2fd9f7b061055
|
||||
precopy: |
|
||||
set -e
|
||||
test -e README.md && mv -f README.md MANUAL.md
|
||||
|
||||
@@ -4,6 +4,9 @@ on:
|
||||
schedule:
|
||||
- cron: "0 6 * * 0"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
check:
|
||||
name: Check for updates
|
||||
@@ -13,7 +16,7 @@ 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@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1
|
||||
uses: step-security/harden-runner@6c3c2f2c1c457b00c10c4848d6f5491db3b629df # v2.18.0
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
@@ -23,9 +26,9 @@ jobs:
|
||||
fetch-depth: 0
|
||||
- name: Authenticate as @ohmyzsh
|
||||
id: generate-token
|
||||
uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0
|
||||
uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
|
||||
with:
|
||||
app-id: ${{ secrets.OHMYZSH_APP_ID }}
|
||||
client-id: ${{ secrets.OHMYZSH_CLIENT_ID }}
|
||||
private-key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }}
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
certifi==2026.2.25
|
||||
charset-normalizer==3.4.5
|
||||
charset-normalizer==3.4.7
|
||||
idna==3.11
|
||||
PyYAML==6.0.3
|
||||
requests==2.32.5
|
||||
requests==2.33.1
|
||||
semver==3.0.4
|
||||
urllib3==2.6.3
|
||||
|
||||
@@ -26,7 +26,7 @@ jobs:
|
||||
- macos-latest
|
||||
steps:
|
||||
- name: Harden the runner (Audit all outbound calls)
|
||||
uses: step-security/harden-runner@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1
|
||||
uses: step-security/harden-runner@6c3c2f2c1c457b00c10c4848d6f5491db3b629df # v2.18.0
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
@@ -47,7 +47,7 @@ jobs:
|
||||
- test
|
||||
steps:
|
||||
- name: Harden the runner (Audit all outbound calls)
|
||||
uses: step-security/harden-runner@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1
|
||||
uses: step-security/harden-runner@6c3c2f2c1c457b00c10c4848d6f5491db3b629df # v2.18.0
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ jobs:
|
||||
if: github.repository == 'ohmyzsh/ohmyzsh'
|
||||
steps:
|
||||
- name: Harden the runner (Audit all outbound calls)
|
||||
uses: step-security/harden-runner@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1
|
||||
uses: step-security/harden-runner@6c3c2f2c1c457b00c10c4848d6f5491db3b629df # v2.18.0
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -17,14 +17,14 @@ jobs:
|
||||
if: github.repository == 'ohmyzsh/ohmyzsh'
|
||||
steps:
|
||||
- name: Harden the runner (Audit all outbound calls)
|
||||
uses: step-security/harden-runner@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1
|
||||
uses: step-security/harden-runner@6c3c2f2c1c457b00c10c4848d6f5491db3b629df # v2.18.0
|
||||
with:
|
||||
egress-policy: audit
|
||||
- name: Authenticate as @ohmyzsh
|
||||
id: generate-token
|
||||
uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0
|
||||
uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
|
||||
with:
|
||||
app-id: ${{ secrets.OHMYZSH_APP_ID }}
|
||||
client-id: ${{ secrets.OHMYZSH_CLIENT_ID }}
|
||||
private-key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }}
|
||||
- name: Read project data
|
||||
env:
|
||||
|
||||
@@ -36,7 +36,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden the runner (Audit all outbound calls)
|
||||
uses: step-security/harden-runner@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1
|
||||
uses: step-security/harden-runner@6c3c2f2c1c457b00c10c4848d6f5491db3b629df # v2.18.0
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
@@ -53,13 +53,13 @@ jobs:
|
||||
publish_results: true
|
||||
|
||||
- name: "Upload artifact"
|
||||
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
with:
|
||||
name: SARIF file
|
||||
path: results.sarif
|
||||
retention-days: 5
|
||||
|
||||
- name: "Upload to code-scanning"
|
||||
uses: github/codeql-action/upload-sarif@0d579ffd059c29b07949a3cce3983f0780820c98 # v4.32.6
|
||||
uses: github/codeql-action/upload-sarif@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
||||
@@ -4,7 +4,12 @@ custom/
|
||||
# temp files directories
|
||||
cache/
|
||||
log/
|
||||
|
||||
# Vim swap/backup files
|
||||
*.swp
|
||||
*.swo
|
||||
|
||||
# macOS system files
|
||||
.DS_Store
|
||||
|
||||
# editor configs
|
||||
@@ -13,3 +18,4 @@ log/
|
||||
|
||||
# zcompile cached files
|
||||
*.zwc
|
||||
*.zwc.old
|
||||
|
||||
@@ -55,7 +55,17 @@ _kube_ps1_shell_type() {
|
||||
_kube_ps1_init() {
|
||||
[[ -f "${_KUBE_PS1_DISABLE_PATH}" ]] && KUBE_PS1_ENABLED=off
|
||||
|
||||
case "$(_kube_ps1_shell_type)" in
|
||||
# Detect shell type once and cache it
|
||||
_KUBE_PS1_SHELL="$(_kube_ps1_shell_type)"
|
||||
|
||||
# Check tput availability once
|
||||
if tput setaf 1 &> /dev/null; then
|
||||
_KUBE_PS1_TPUT_AVAILABLE=true
|
||||
else
|
||||
_KUBE_PS1_TPUT_AVAILABLE=false
|
||||
fi
|
||||
|
||||
case "${_KUBE_PS1_SHELL}" in
|
||||
"zsh")
|
||||
_KUBE_PS1_OPEN_ESC="%{"
|
||||
_KUBE_PS1_CLOSE_ESC="%}"
|
||||
@@ -96,10 +106,10 @@ _kube_ps1_color_fg() {
|
||||
if [[ "${_KUBE_PS1_FG_CODE}" == "default" ]]; then
|
||||
_KUBE_PS1_FG_CODE="${_KUBE_PS1_DEFAULT_FG}"
|
||||
return
|
||||
elif [[ "$(_kube_ps1_shell_type)" == "zsh" ]]; then
|
||||
elif [[ "${_KUBE_PS1_SHELL}" == "zsh" ]]; then
|
||||
_KUBE_PS1_FG_CODE="%F{$_KUBE_PS1_FG_CODE}"
|
||||
elif [[ "$(_kube_ps1_shell_type)" == "bash" ]]; then
|
||||
if tput setaf 1 &> /dev/null; then
|
||||
elif [[ "${_KUBE_PS1_SHELL}" == "bash" ]]; then
|
||||
if [[ "${_KUBE_PS1_TPUT_AVAILABLE}" == "true" ]]; then
|
||||
_KUBE_PS1_FG_CODE="$(tput setaf "${_KUBE_PS1_FG_CODE}")"
|
||||
elif [[ $_KUBE_PS1_FG_CODE -ge 0 ]] && [[ $_KUBE_PS1_FG_CODE -le 256 ]]; then
|
||||
_KUBE_PS1_FG_CODE="\033[38;5;${_KUBE_PS1_FG_CODE}m"
|
||||
@@ -129,15 +139,15 @@ _kube_ps1_color_bg() {
|
||||
if [[ "${_KUBE_PS1_BG_CODE}" == "default" ]]; then
|
||||
_KUBE_PS1_FG_CODE="${_KUBE_PS1_DEFAULT_BG}"
|
||||
return
|
||||
elif [[ "$(_kube_ps1_shell_type)" == "zsh" ]]; then
|
||||
elif [[ "${_KUBE_PS1_SHELL}" == "zsh" ]]; then
|
||||
_KUBE_PS1_BG_CODE="%K{$_KUBE_PS1_BG_CODE}"
|
||||
elif [[ "$(_kube_ps1_shell_type)" == "bash" ]]; then
|
||||
if tput setaf 1 &> /dev/null; then
|
||||
elif [[ "${_KUBE_PS1_SHELL}" == "bash" ]]; then
|
||||
if [[ "${_KUBE_PS1_TPUT_AVAILABLE}" == "true" ]]; then
|
||||
_KUBE_PS1_BG_CODE="$(tput setab "${_KUBE_PS1_BG_CODE}")"
|
||||
elif [[ $_KUBE_PS1_BG_CODE -ge 0 ]] && [[ $_KUBE_PS1_BG_CODE -le 256 ]]; then
|
||||
_KUBE_PS1_BG_CODE="\033[48;5;${_KUBE_PS1_BG_CODE}m"
|
||||
else
|
||||
_KUBE_PS1_BG_CODE="${DEFAULT_BG}"
|
||||
_KUBE_PS1_BG_CODE="${_KUBE_PS1_DEFAULT_BG}"
|
||||
fi
|
||||
fi
|
||||
echo "${_KUBE_PS1_OPEN_ESC}${_KUBE_PS1_BG_CODE}${_KUBE_PS1_CLOSE_ESC}"
|
||||
@@ -174,7 +184,7 @@ _kube_ps1_symbol() {
|
||||
symbol="$(_kube_ps1_color_fg ${oc_symbol_color})${oc_glyph}${KUBE_PS1_RESET_COLOR}"
|
||||
;;
|
||||
*)
|
||||
case "$(_kube_ps1_shell_type)" in
|
||||
case "${_KUBE_PS1_SHELL}" in
|
||||
bash)
|
||||
if ((BASH_VERSINFO[0] >= 4)) && [[ $'\u2388' != "\\u2388" ]]; then
|
||||
symbol="$(_kube_ps1_color_fg $custom_symbol_color)${symbol_default}${KUBE_PS1_RESET_COLOR}"
|
||||
@@ -212,7 +222,7 @@ _kube_ps1_file_newer_than() {
|
||||
local file=$1
|
||||
local check_time=$2
|
||||
|
||||
if [[ "$(_kube_ps1_shell_type)" == "zsh" ]]; then
|
||||
if [[ "${_KUBE_PS1_SHELL}" == "zsh" ]]; then
|
||||
# Use zstat '-F %s.%s' to make it compatible with low zsh version (eg: 5.0.2)
|
||||
mtime=$(zstat -L +mtime -F %s.%s "${file}")
|
||||
elif stat -c "%s" /dev/null &> /dev/null; then
|
||||
@@ -292,13 +302,13 @@ _kube_ps1_get_ns() {
|
||||
|
||||
_kube_ps1_get_context_ns() {
|
||||
# Set the command time
|
||||
if [[ "$(_kube_ps1_shell_type)" == "bash" ]]; then
|
||||
if [[ "${_KUBE_PS1_SHELL}" == "bash" ]]; then
|
||||
if ((BASH_VERSINFO[0] >= 4 && BASH_VERSINFO[1] >= 2)); then
|
||||
_KUBE_PS1_LAST_TIME=$(printf '%(%s)T')
|
||||
else
|
||||
_KUBE_PS1_LAST_TIME=$(date +%s)
|
||||
fi
|
||||
elif [[ "$(_kube_ps1_shell_type)" == "zsh" ]]; then
|
||||
elif [[ "${_KUBE_PS1_SHELL}" == "zsh" ]]; then
|
||||
_KUBE_PS1_LAST_TIME=$EPOCHREALTIME
|
||||
fi
|
||||
|
||||
@@ -325,7 +335,7 @@ Toggle kube-ps1 prompt on
|
||||
|
||||
Usage: kubeon [-g | --global] [-h | --help]
|
||||
|
||||
With no arguments, turn oon kube-ps1 status for this shell instance (default).
|
||||
With no arguments, turn on kube-ps1 status for this shell instance (default).
|
||||
|
||||
-g --global turn on kube-ps1 status globally
|
||||
-h --help print this message
|
||||
|
||||
@@ -35,13 +35,16 @@ plugins=(... kubectl)
|
||||
| kgpl | `kgp -l` | Get pods by label. Example: `kgpl "app=myapp" -n myns` |
|
||||
| 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 |
|
||||
| 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 |
|
||||
| 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 |
|
||||
| kdp | `kubectl describe pods` | Describe all pods |
|
||||
| kdelp | `kubectl delete pods` | Delete all pods matching passed arguments |
|
||||
| | | **Service management** |
|
||||
| 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 |
|
||||
| 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 |
|
||||
@@ -49,6 +52,7 @@ plugins=(... kubectl)
|
||||
| kdels | `kubectl delete svc` | Delete all services matching passed argument |
|
||||
| | | **Ingress management** |
|
||||
| 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 |
|
||||
| kdi | `kubectl describe ingress` | Describe ingress resource in detail |
|
||||
| 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 |
|
||||
| | | **ConfigMap management** |
|
||||
| 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 |
|
||||
| kdcm | `kubectl describe configmap` | Describe configmap resource in detail |
|
||||
| kdelcm | `kubectl delete configmap` | Delete the configmap |
|
||||
| | | **Secret management** |
|
||||
| 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 |
|
||||
| kdelsec | `kubectl delete secret` | Delete the secret |
|
||||
| | | **Deployment management** |
|
||||
| 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 |
|
||||
| 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 |
|
||||
@@ -91,7 +98,13 @@ plugins=(... kubectl)
|
||||
| kgaa | `kubectl get all --all-namespaces` | List the requested object(s) across all namespaces |
|
||||
| | | **Logs** |
|
||||
| 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) |
|
||||
| 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** |
|
||||
| kcp | `kubectl cp` | Copy files and directories to and from containers |
|
||||
| | | **Node management** |
|
||||
@@ -102,12 +115,14 @@ plugins=(... kubectl)
|
||||
| kdelno | `kubectl delete node` | Delete the node |
|
||||
| | | **Persistent Volume Claim management** |
|
||||
| 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 |
|
||||
| kepvc | `kubectl edit pvc` | Edit pvcs from the default editor |
|
||||
| kdpvc | `kubectl describe pvc` | Describe all pvcs |
|
||||
| kdelpvc | `kubectl delete pvc` | Delete all pvcs matching passed arguments |
|
||||
| | | **StatefulSets management** |
|
||||
| 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 |
|
||||
| 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 |
|
||||
@@ -121,6 +136,7 @@ plugins=(... kubectl)
|
||||
| kdelsa | `kubectl delete sa` | Delete the service account |
|
||||
| | | **DaemonSet management** |
|
||||
| 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 |
|
||||
| keds | `kubectl edit daemonset` | Edit DaemonSets from the default editor |
|
||||
| kdds | `kubectl describe daemonset` | Describe all DaemonSets in detail |
|
||||
|
||||
@@ -30,14 +30,20 @@ function tofu_version_prompt_info() {
|
||||
alias tt='tofu'
|
||||
alias tta='tofu apply'
|
||||
alias tta!='tofu apply -auto-approve'
|
||||
alias ttap='tofu apply -parallelism=1'
|
||||
alias ttapp='tofu apply tfplan'
|
||||
alias ttc='tofu console'
|
||||
alias ttd='tofu destroy'
|
||||
alias ttd!='tofu destroy -auto-approve'
|
||||
alias ttf='tofu fmt'
|
||||
alias ttfr='tofu fmt -recursive'
|
||||
alias tti='tofu init'
|
||||
alias ttir='tofu init -reconfigure'
|
||||
alias ttiu='tofu init -upgrade'
|
||||
alias ttiur='tofu init -upgrade -reconfigure'
|
||||
alias tto='tofu output'
|
||||
alias ttp='tofu plan'
|
||||
alias ttpo='tofu plan -out tfplan'
|
||||
alias ttv='tofu validate'
|
||||
alias tts='tofu state'
|
||||
alias ttsh='tofu show'
|
||||
|
||||
@@ -10,27 +10,27 @@ plugins=(... poetry)
|
||||
|
||||
## Aliases
|
||||
|
||||
| Alias | Command | Description
|
||||
| Alias | Command | Description |
|
||||
|:----- |--------------------------------------------------- |:--------------------------------------------------------------------------------------- |
|
||||
| pad | `poetry add` | Add packages to `pyproject.toml` and install them |
|
||||
| pbld | `poetry build` | Build the source and wheels archives |
|
||||
| pch | `poetry check` | Validate the content of the `pyproject.toml` and its consistency with the `poetry.lock` |
|
||||
| pcmd | `poetry list` | Display all the available Poetry commands |
|
||||
| pconf | `poetry config --list` | Allow you to edit poetry config settings and repositories |
|
||||
| pexp | `poetry export --without-hashes > requirements.txt | Export the lock file to `requirements.txt` |
|
||||
| pexp | `poetry export --without-hashes > requirements.txt` | Export the lock file to `requirements.txt` |
|
||||
| pin | `poetry init` | Create a `pyproject.toml` interactively |
|
||||
| pinst | `poetry install` | Read the `pyproject.toml`, resolve the dependencies, and install them |
|
||||
| plck | `poetry lock` | Lock the dependencies in `pyproject.toml` without installing |
|
||||
| pnew | `poetry new` | Create a directory structure suitable for most Python projects |
|
||||
| ppath | `poetry env info --path` | Get the path of the currently activated virtualenv` |
|
||||
| ppath | `poetry env info --path` | Get the path of the currently activated virtualenv |
|
||||
| pplug | `poetry self show plugins` | List all the installed Poetry plugins |
|
||||
| ppub | `poetry publish` | Publish the builded (`poetry build` command) package to the remote repository |
|
||||
| ppub | `poetry publish` | Publish the built (`poetry build` command) package to the remote repository |
|
||||
| prm | `poetry remove` | Remove packages from `pyproject.toml` and uninstall them |
|
||||
| prun | `poetry run` | Executes the given command inside the project’s virtualenv |
|
||||
| psad | `poetry self add` | Add the Poetry plugin and install dependencies to make it work |
|
||||
| psh | `poetry shell` | Spawns a shell within the virtual environment. If one doesn’t exist, it will be created |
|
||||
| pshw | `poetry show` | List all the available dependencies |
|
||||
| pslt | `poetry show --latest` | List lastest version of the dependencies |
|
||||
| pslt | `poetry show --latest` | List latest version of the dependencies |
|
||||
| psup | `poetry self update` | Update Poetry to the latest version (default) or to the specified version |
|
||||
| psync | `poetry install --sync` | Synchronize your environment with the `poetry.lock` |
|
||||
| ptree | `poetry show --tree` | List the dependencies as tree |
|
||||
|
||||
@@ -4,21 +4,21 @@ function tf_prompt_info() {
|
||||
# check if in terraform dir and file exists
|
||||
[[ -d "${TF_DATA_DIR:-.terraform}" && -r "${TF_DATA_DIR:-.terraform}/environment" ]] || return
|
||||
|
||||
local workspace="$(< "${TF_DATA_DIR:-.terraform}/environment")"
|
||||
local workspace="$(<"${TF_DATA_DIR:-.terraform}/environment")"
|
||||
echo "${ZSH_THEME_TF_PROMPT_PREFIX-[}${workspace:gs/%/%%}${ZSH_THEME_TF_PROMPT_SUFFIX-]}"
|
||||
}
|
||||
|
||||
function tf_version_prompt_info() {
|
||||
local terraform_version
|
||||
terraform_version=$(terraform --version | head -n 1 | cut -d ' ' -f 2)
|
||||
echo "${ZSH_THEME_TF_VERSION_PROMPT_PREFIX-[}${terraform_version:gs/%/%%}${ZSH_THEME_TF_VERSION_PROMPT_SUFFIX-]}"
|
||||
local terraform_version
|
||||
terraform_version=$(terraform --version | head -n 1 | cut -d ' ' -f 2)
|
||||
echo "${ZSH_THEME_TF_VERSION_PROMPT_PREFIX-[}${terraform_version:gs/%/%%}${ZSH_THEME_TF_VERSION_PROMPT_SUFFIX-]}"
|
||||
}
|
||||
|
||||
|
||||
alias tf='terraform'
|
||||
alias tfa='terraform apply'
|
||||
alias tfa!='terraform apply -auto-approve'
|
||||
alias tfap='terraform apply -parallelism=1'
|
||||
alias tfapp='terraform apply tfplan'
|
||||
alias tfc='terraform console'
|
||||
alias tfd='terraform destroy'
|
||||
alias tfd!='terraform destroy -auto-approve'
|
||||
@@ -31,6 +31,7 @@ alias tfiu='terraform init -upgrade'
|
||||
alias tfiur='terraform init -upgrade -reconfigure'
|
||||
alias tfo='terraform output'
|
||||
alias tfp='terraform plan'
|
||||
alias tfpo='terraform plan -out tfplan'
|
||||
alias tfv='terraform validate'
|
||||
alias tfs='terraform state'
|
||||
alias tft='terraform test'
|
||||
|
||||
@@ -87,8 +87,8 @@ _build_tmux_alias "tkss" "kill-session" "-t"
|
||||
|
||||
unfunction _build_tmux_alias
|
||||
|
||||
# Determine if the terminal supports 256 colors
|
||||
if [[ $terminfo[colors] == 256 ]]; then
|
||||
# Determine if the terminal supports at least 256 colors
|
||||
if (( ${+terminfo[colors]} )) && [[ $terminfo[colors] -ge 256 ]]; then
|
||||
export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITH_256COLOR
|
||||
else
|
||||
export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR
|
||||
|
||||
+37
-38
@@ -1,6 +1,6 @@
|
||||
# VS Code
|
||||
|
||||
This plugin provides useful aliases to simplify the interaction between the command line and VS Code, VSCodium, or Cursor editor.
|
||||
This plugin provides useful aliases to simplify interaction between the command line and VS Code, VSCodium, or Cursor.
|
||||
|
||||
To start using it, add the `vscode` plugin to your `plugins` array in `~/.zshrc`:
|
||||
|
||||
@@ -10,46 +10,45 @@ plugins=(... vscode)
|
||||
|
||||
## Requirements
|
||||
|
||||
This plugin requires to have a flavour of VS Code installed and its executable available in PATH.
|
||||
This plugin requires one of the supported editors to be installed and its executable to be available in `PATH`.
|
||||
|
||||
You can install either:
|
||||
You can install one of the following:
|
||||
|
||||
- VS Code (code)
|
||||
- VS Code Insiders (code-insiders)
|
||||
- VSCodium (codium)
|
||||
- Cursor (cursor)
|
||||
- VS Code (`code`)
|
||||
- VS Code Insiders (`code-insiders`)
|
||||
- VSCodium (`codium`)
|
||||
- Cursor (`cursor`)
|
||||
|
||||
### MacOS
|
||||
### macOS
|
||||
|
||||
While Linux installations will add the executable to PATH, MacOS users might still have to do this manually:
|
||||
While Linux installations usually add the executable to `PATH`, macOS users might still have to do this manually:
|
||||
|
||||
[For VS Code and VS Code Insiders](https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line),
|
||||
open the Command Palette via (F1 or ⇧⌘P) and type shell command to find the Shell Command:
|
||||
open the Command Palette with `F1` or `Shift+Cmd+P`, then search for the following command:
|
||||
|
||||
> Shell Command: Install 'code' command in PATH
|
||||
|
||||
[For VSCodium](https://github.com/VSCodium/vscodium/blob/master/DOCS.md#how-do-i-open-vscodium-from-the-terminal),
|
||||
open the Command Palette via (F1 or ⇧⌘P) and type shell command to find the Shell Command:
|
||||
open the Command Palette with `F1` or `Shift+Cmd+P`, then search for the following command:
|
||||
|
||||
> Shell Command: Install 'codium' command in PATH
|
||||
|
||||
For Cursor, open the Command Palette via (F1 or ⌘⇧P) and type shell command to find the Shell Command:
|
||||
For Cursor, open the Command Palette with `F1` or `Cmd+Shift+P`, then search for the following command:
|
||||
|
||||
> Shell Command: Install 'cursor' command in PATH
|
||||
|
||||
## Using multiple flavours
|
||||
## Choosing an editor
|
||||
|
||||
If for any reason, you ever require to use multiple flavours of VS Code i.e. VS Code (stable) and VS Code
|
||||
Insiders, you can manually specify the flavour's executable. Add the following line to the .zshrc file
|
||||
(between the `ZSH_THEME` and the `plugins=()` lines). This will make the plugin use your manually defined
|
||||
executable.
|
||||
If you have multiple supported editors installed, e.g., VS Code (stable) and VS Code Insiders, you can manually
|
||||
specify which executable the plugin should use. Add the following line to `~/.zshrc` between the `ZSH_THEME`
|
||||
and `plugins=()` lines. This makes the plugin use your manually defined executable.
|
||||
|
||||
```zsh
|
||||
ZSH_THEME=...
|
||||
|
||||
# Choose between one [code, code-insiders, codium, or cursor]
|
||||
# The following line will make the plugin to open VS Code Insiders
|
||||
# Invalid entries will be ignored, no aliases will be added
|
||||
# Choose one of `code`, `code-insiders`, `codium`, or `cursor`.
|
||||
# The following line makes the plugin open VS Code Insiders.
|
||||
# Invalid entries are ignored and no aliases are added.
|
||||
VSCODE=code-insiders
|
||||
|
||||
plugins=(... vscode)
|
||||
@@ -61,29 +60,29 @@ source $ZSH/oh-my-zsh.sh
|
||||
|
||||
| Alias | Command | Description |
|
||||
| ----------------------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------- |
|
||||
| vsc | code . | Open the current folder in VS code |
|
||||
| vsc `dir` | code `dir` | Open passed folder in VS code |
|
||||
| vsca `dir` | code --add `dir` | Add folder(s) to the last active window |
|
||||
| vsc | code . | Open the current folder in VS Code |
|
||||
| vsc `[args ...]` | code `[args ...]` | Pass arguments through to VS Code, e.g., a file, folder, or CLI flags. |
|
||||
| vsca `dir` | code --add `dir` | Add one or more folders to the last active window. |
|
||||
| vscd `file` `file` | code --diff `file` `file` | Compare two files with each other. |
|
||||
| vscg `file:line[:char]` | code --goto `file:line[:char]` | Open a file at the path on the specified line and character position. |
|
||||
| vscn | code --new-window | Force to open a new window. |
|
||||
| vscr | code --reuse-window | Force to open a file or folder in the last active window. |
|
||||
| vscn | code --new-window | Force opening in a new window. |
|
||||
| vscr | code --reuse-window | Force opening a file or folder in the last active window. |
|
||||
| vscw | code --wait | Wait for the files to be closed before returning. |
|
||||
| vscu `dir` | code --user-data-dir `dir` | Specifies the directory that user data is kept in. Can be used to open multiple distinct instances of Code. |
|
||||
| vscu `dir` | code --user-data-dir `dir` | Specifies the directory where user data is stored. Can be used to open multiple distinct instances of Code. |
|
||||
| vscp `profile` | code --profile `profile` | Specifies the profile to open Code with. |
|
||||
|
||||
## Extensions aliases
|
||||
## Extension aliases
|
||||
|
||||
| Alias | Command | Description |
|
||||
| ----------------------- | ---------------------------------------------------------------- | --------------------------------- |
|
||||
| vsced `dir` | code --extensions-dir `dir` | Set the root path for extensions. |
|
||||
| vscie `id or vsix-path` | code --install-extension `extension-id> or <extension-vsix-path` | Installs an extension. |
|
||||
| vscue `id or vsix-path` | code --uninstall-extension `id or vsix-path` | Uninstalls an extension. |
|
||||
| Alias | Command | Description |
|
||||
| --------------------------- | ---------------------------------------------- | -------------------------------------- |
|
||||
| vsced `dir` | code --extensions-dir `dir` | Set the root directory for extensions. |
|
||||
| vscie `ext-id or vsix-path` | code --install-extension `ext-id or vsix-path` | Installs or updates an extension. |
|
||||
| vscue `ext-id` | code --uninstall-extension `ext-id` | Uninstalls an extension. |
|
||||
|
||||
## Other options:
|
||||
## Other options
|
||||
|
||||
| Alias | Command | Description |
|
||||
| ------------ | ------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| vscv | code --verbose | Print verbose output (implies --wait). |
|
||||
| vscl `level` | code --log `level` | Log level to use. Default is 'info'. Allowed values are 'critical', 'error', 'warn', 'info', 'debug', 'trace', 'off'. |
|
||||
| vscde | code --disable-extensions | Disable all installed extensions. |
|
||||
| Alias | Command | Description |
|
||||
| ------------ | ------------------------- | ---------------------------------------- |
|
||||
| vscv | code --verbose | Print verbose output (implies `--wait`). |
|
||||
| vscl `level` | code --log `level` | Log level to use. Default is `info`. |
|
||||
| vscde | code --disable-extensions | Disable all installed extensions. |
|
||||
|
||||
+2
-2
@@ -111,7 +111,7 @@ _yarn_commands_scripts() {
|
||||
packageJson=$(_yarn_find_package_json $opt_args[--cwd])
|
||||
binaries=($(builtin cd $opt_args[--cwd] && echo node_modules/.bin/*(x:t)))
|
||||
else
|
||||
packageJson=$(_yarn_find_package_json $pwd)
|
||||
packageJson=$(_yarn_find_package_json $PWD)
|
||||
binaries=($(echo node_modules/.bin/*(x:t)))
|
||||
fi
|
||||
|
||||
@@ -135,7 +135,7 @@ _yarn_scripts() {
|
||||
binaries=($(builtin cd $_yarn_run_cwd && yarn bin | perl -wln -e 'm{^[^:]+: (\S+)$} and print $1'))
|
||||
fi
|
||||
else
|
||||
packageJson=$(_yarn_find_package_json $pwd)
|
||||
packageJson=$(_yarn_find_package_json $PWD)
|
||||
if [[ -d node_modules ]]; then
|
||||
binaries=($(echo node_modules/.bin/*(x:t)))
|
||||
else
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
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
|
||||
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)
|
||||
- [`ZSHZ_UNCOMMON`](#zshz_uncommon)
|
||||
- [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)
|
||||
- [`COMPLETE_ALIASES`](#complete_aliases)
|
||||
- [Known Bugs](#known-bugs)
|
||||
|
||||
## News
|
||||
|
||||
<details>
|
||||
<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
|
||||
+ Zsh-z will now run when `setopt NO_UNSET` has been enabled (props @ntninja).
|
||||
- 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)).
|
||||
+ If writing to the temporary database file fails, the database will not be clobbered (props @mafredri).
|
||||
- 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
|
||||
+ 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.
|
||||
@@ -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
|
||||
+ Temporarily disabling the use of `print -v`, which was mangling CJK multibyte strings.
|
||||
- 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.
|
||||
- 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`.
|
||||
@@ -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 `~`.
|
||||
- May 7, 2021
|
||||
+ 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
|
||||
+ 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
|
||||
+ 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
|
||||
+ Made sure that the `PUSHD_IGNORE_DUPS` option is respected.
|
||||
- January 14, 2021
|
||||
@@ -171,7 +173,7 @@ is uncommented. Then find the section that specifies which modules are to be loa
|
||||
'completion' \
|
||||
'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 \
|
||||
'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_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_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
|
||||
|
||||
@@ -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.)
|
||||
|
||||
## Other Improvements and Fixes
|
||||
## Other Improvements to the Original Functionality of `rupa/z`
|
||||
|
||||
* `z -x` works, with the help of `chpwd_functions`.
|
||||
* 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`.
|
||||
* 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.
|
||||
* 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
|
||||
|
||||
@@ -347,7 +350,7 @@ If you are coming to Zsh-z (or even to the original `rupa/z`, for that matter) f
|
||||
|
||||
## `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
|
||||
|
||||
@@ -356,10 +359,3 @@ the line
|
||||
compdef _zshz ${ZSHZ_CMD:-${_Z_CMD:-z}}
|
||||
|
||||
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
|
||||
#
|
||||
# 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
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -37,25 +37,10 @@ emulate -L zsh
|
||||
(( ZSHZ_DEBUG )) &&
|
||||
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 -a completion_list
|
||||
|
||||
completions=$(zshz --complete ${(@)words:1})
|
||||
completions=$(zshz --complete "${(@)words:1}")
|
||||
[[ -z $completions ]] && return 1
|
||||
|
||||
for completion in ${(f)completions[@]}; do
|
||||
|
||||
+71
-4
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# 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
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -294,9 +294,9 @@ zshz() {
|
||||
owner=${ZSHZ_OWNER:-${_Z_OWNER}}
|
||||
|
||||
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
|
||||
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
|
||||
${ZSHZ[RM]} -f "$tempfile"
|
||||
# All other cases
|
||||
@@ -960,6 +960,62 @@ add-zsh-hook chpwd _zshz_chpwd
|
||||
|
||||
(( ${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
|
||||
############################################################
|
||||
@@ -974,7 +1030,8 @@ ZSHZ[FUNCTIONS]='_zshz_usage
|
||||
zshz
|
||||
_zshz_precmd
|
||||
_zshz_chpwd
|
||||
_zshz'
|
||||
_zshz
|
||||
_zshz_zle_completion_widget'
|
||||
|
||||
############################################################
|
||||
# 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 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
|
||||
for x in ${=ZSHZ[FUNCTIONS]}; do
|
||||
(( ${+functions[$x]} )) && unfunction $x
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="green"; fi
|
||||
local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
|
||||
|
||||
PROMPT='%{$fg[$NCOLOR]%}%n%{$reset_color%}@%{$fg[cyan]%}%m\
|
||||
%{$reset_color%}:%{$fg[magenta]%}%~\
|
||||
$(git_prompt_info) \
|
||||
%{$fg[red]%}%(!.#.»)%{$reset_color%} '
|
||||
PROMPT='%{$fg[$NCOLOR]%}%n%{$reset_color%}@%{$fg[cyan]%}%m%{$reset_color%}:%{$fg[magenta]%}%~$(git_prompt_info) %{$fg[red]%}%(!.#.»)%{$reset_color%} '
|
||||
PROMPT2='%{$fg[red]%}\ %{$reset_color%}'
|
||||
RPS1='${return_code}'
|
||||
|
||||
|
||||
+2
-1
@@ -473,7 +473,8 @@ EOF
|
||||
# be prompted for the password either way, so this shouldn't cause any issues.
|
||||
#
|
||||
if user_can_sudo; then
|
||||
sudo -k chsh -s "$zsh" "$USER" # -k forces the password prompt
|
||||
sudo -k >/dev/null 2>&1 # -k forces the password prompt
|
||||
sudo chsh -s "$zsh" "$USER"
|
||||
else
|
||||
chsh -s "$zsh" "$USER" # run chsh normally
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user