diff --git a/README.md b/README.md index cabf3013..2f0140f7 100644 --- a/README.md +++ b/README.md @@ -242,21 +242,6 @@ zoxide can be installed in 4 easy steps: -
- Ksh - - > Add this to the **end** of your config file (usually `~/.kshrc`): - > - > ```sh - > # ksh93 - > eval "$(zoxide init ksh)" - > - > # mksh, oksh, etc. - > eval "$(zoxide init ksh --hook=prompt)" - > ``` - -
-
Nushell diff --git a/contrib/completions/_zoxide b/contrib/completions/_zoxide index e3452ac1..69882b41 100644 --- a/contrib/completions/_zoxide +++ b/contrib/completions/_zoxide @@ -112,7 +112,7 @@ _arguments "${_arguments_options[@]}" : \ '--help[Print help]' \ '-V[Print version]' \ '--version[Print version]' \ -':shell:(bash elvish fish ksh nushell posix powershell xonsh zsh)' \ +':shell:(bash elvish fish nushell posix powershell xonsh zsh)' \ && ret=0 ;; (query) diff --git a/contrib/completions/zoxide.bash b/contrib/completions/zoxide.bash index 6bc165a6..73dbd45f 100644 --- a/contrib/completions/zoxide.bash +++ b/contrib/completions/zoxide.bash @@ -165,7 +165,7 @@ _zoxide() { return 0 ;; zoxide__init) - opts="-h -V --no-cmd --cmd --hook --help --version bash elvish fish ksh nushell posix powershell xonsh zsh" + opts="-h -V --no-cmd --cmd --hook --help --version bash elvish fish nushell posix powershell xonsh zsh" if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 diff --git a/contrib/completions/zoxide.ts b/contrib/completions/zoxide.ts index 1e987b12..0200591b 100644 --- a/contrib/completions/zoxide.ts +++ b/contrib/completions/zoxide.ts @@ -182,7 +182,6 @@ const completion: Fig.Spec = { "bash", "elvish", "fish", - "ksh", "nushell", "posix", "powershell", diff --git a/man/man1/zoxide-init.1 b/man/man1/zoxide-init.1 index b637295c..387c3182 100644 --- a/man/man1/zoxide-init.1 +++ b/man/man1/zoxide-init.1 @@ -30,13 +30,6 @@ Add this to the \fBend\fR of your config file (usually \fBzoxide init fish | source\fR .fi .TP -.B ksh -Add this to the \fBend\fR of your config file (usually \fB~/.kshrc\fR): -.sp -.nf - \fBeval $(zoxide init ksh)\fR -.fi -.TP .B nushell Add this to the \fBend\fR of your env file (find it by running \fB$nu.env-path\fR in Nushell): diff --git a/src/cmd/cmd.rs b/src/cmd/cmd.rs index 3b05a60b..61ecbaa2 100644 --- a/src/cmd/cmd.rs +++ b/src/cmd/cmd.rs @@ -137,8 +137,8 @@ pub enum InitShell { Bash, Elvish, Fish, - Ksh, Nushell, + #[clap(alias = "ksh")] Posix, Powershell, Xonsh, diff --git a/src/cmd/init.rs b/src/cmd/init.rs index 70bdca04..3f79ed66 100644 --- a/src/cmd/init.rs +++ b/src/cmd/init.rs @@ -6,7 +6,7 @@ use rinja::Template; use crate::cmd::{Init, InitShell, Run}; use crate::config; use crate::error::BrokenPipeHandler; -use crate::shell::{Bash, Elvish, Fish, Ksh, Nushell, Opts, Posix, Powershell, Xonsh, Zsh}; +use crate::shell::{Bash, Elvish, Fish, Nushell, Opts, Posix, Powershell, Xonsh, Zsh}; impl Run for Init { fn run(&self) -> Result<()> { @@ -19,7 +19,6 @@ impl Run for Init { InitShell::Bash => Bash(opts).render(), InitShell::Elvish => Elvish(opts).render(), InitShell::Fish => Fish(opts).render(), - InitShell::Ksh => Ksh(opts).render(), InitShell::Nushell => Nushell(opts).render(), InitShell::Posix => Posix(opts).render(), InitShell::Powershell => Powershell(opts).render(), diff --git a/src/shell.rs b/src/shell.rs index 10e6235d..721553db 100644 --- a/src/shell.rs +++ b/src/shell.rs @@ -26,7 +26,6 @@ macro_rules! make_template { make_template!(Bash, "bash.txt"); make_template!(Elvish, "elvish.txt"); make_template!(Fish, "fish.txt"); -make_template!(Ksh, "ksh.txt"); make_template!(Nushell, "nushell.txt"); make_template!(Posix, "posix.txt"); make_template!(Powershell, "powershell.txt"); @@ -159,42 +158,6 @@ mod tests { .stderr(""); } - #[apply(opts)] - fn ksh_ksh(cmd: Option<&str>, hook: InitHook, echo: bool, resolve_symlinks: bool) { - let opts = Opts { cmd, hook, echo, resolve_symlinks }; - let source = Ksh(&opts).render().unwrap(); - Command::new("ksh").args(["-n", "-c", &source]).assert().success().stdout("").stderr(""); - } - - #[apply(opts)] - fn ksh_shellcheck(cmd: Option<&str>, hook: InitHook, echo: bool, resolve_symlinks: bool) { - let opts = Opts { cmd, hook, echo, resolve_symlinks }; - let source = Ksh(&opts).render().unwrap(); - - Command::new("shellcheck") - .args(["--enable=all", "-"]) - .write_stdin(source) - .assert() - .success() - .stdout("") - .stderr(""); - } - - #[apply(opts)] - fn ksh_shfmt(cmd: Option<&str>, hook: InitHook, echo: bool, resolve_symlinks: bool) { - let opts = Opts { cmd, hook, echo, resolve_symlinks }; - let mut source = Ksh(&opts).render().unwrap(); - source.push('\n'); - - Command::new("shfmt") - .args(["--diff", "--indent=4", "--language-dialect=mksh", "--simplify", "-"]) - .write_stdin(source) - .assert() - .success() - .stdout("") - .stderr(""); - } - #[apply(opts)] fn nushell_nushell(cmd: Option<&str>, hook: InitHook, echo: bool, resolve_symlinks: bool) { let opts = Opts { cmd, hook, echo, resolve_symlinks }; diff --git a/templates/ksh.txt b/templates/ksh.txt deleted file mode 100644 index 2f8fd06d..00000000 --- a/templates/ksh.txt +++ /dev/null @@ -1,118 +0,0 @@ -{%- let section = "# =============================================================================\n#" -%} -{%- let not_configured = "# -- not configured --" -%} - -# shellcheck shell=ksh - -{{ section }} -# Utility functions for zoxide. -# - -# pwd based on the value of _ZO_RESOLVE_SYMLINKS. -__zoxide_pwd() { -{%- if cfg!(windows) %} - \command cygpath -w "$(\builtin pwd -P)" -{%- else if resolve_symlinks %} - \command pwd -P -{%- else %} - \command pwd -L -{%- endif %} -} - -# cd + custom logic based on the value of _ZO_ECHO. -__zoxide_cd() { - # shellcheck disable=SC2164 - \command cd "$@" {%- if echo %} && __zoxide_pwd {%- endif %} -} - -{{ section }} -# Hook configuration for zoxide. -# - -{% match hook %} -{%- when InitHook::None -%} -{{ not_configured }} - -{%- when InitHook::Prompt -%} -# Hook to add new entries to the database. -__zoxide_hook() { - \command zoxide add -- "$(__zoxide_pwd || \builtin true)" -} - -# Initialize hook. -if [[ ${PS1:=} == "${PS1#*\$(__zoxide_hook)}" ]]; then - PS1="${PS1}\$(__zoxide_hook)" -fi - -{%- when InitHook::Pwd -%} -# Hook to add new entries to the database. -__zoxide_hook() { - __zoxide_retval="$?" - __zoxide_newpwd="$(__zoxide_pwd)" - if [[ ${__zoxide_oldpwd:-__zoxide_newpwd} != "${__zoxide_newpwd}" ]]; then - \command zoxide add -- "${__zoxide_newpwd}" - __zoxide_oldpwd="${__zoxide_newpwd}" - fi - return "${__zoxide_retval}" -} - -# Initialize hook. -__zoxide_trap="$(\command trap -p DEBUG)" -if [[ ${__zoxide_trap} != *'__zoxide_hook'* ]]; then - \command trap "__zoxide_hook;${__zoxide_trap#';'}" DEBUG -fi -{%- endmatch %} - -{{ section }} -# When using zoxide with --no-cmd, alias these internal functions as desired. -# - -# Jump to a directory using only keywords. -__zoxide_z() { - # shellcheck disable=SC2199 - if (($# == 0)); then - __zoxide_cd ~ - elif [[ ($# == 1) && $1 == '-' ]]; then - __zoxide_cd "${OLDPWD}" - elif [[ ($# == 1) && -d $1 ]]; then - __zoxide_cd "$1" - elif [[ ($# == 2) && $1 == '--' ]]; then - __zoxide_cd "$2" - else - # shellcheck disable=SC2312 - __zoxide_result="$(\command zoxide query --exclude "$(__zoxide_pwd)" -- "$@")" && - __zoxide_cd "${__zoxide_result}" - fi -} - -# Jump to a directory using interactive search. -__zoxide_zi() { - __zoxide_result="$(\command zoxide query --interactive -- "$@")" && __zoxide_cd "${__zoxide_result}" -} - -{{ section }} -# Commands for zoxide. Disable these using --no-cmd. -# - -{%- match cmd %} -{%- when Some with (cmd) %} - -\command unalias {{cmd}} >/dev/null 2>&1 || \true -{{cmd}}() { - __zoxide_z "$@" -} - -\command unalias {{cmd}}i >/dev/null 2>&1 || \true -{{cmd}}i() { - __zoxide_zi "$@" -} - -{%- when None %} - -{{ not_configured }} - -{%- endmatch %} - -{{ section }} -# To initialize zoxide, add this to your configuration (usually ~/.kshrc): -# -# eval "$(zoxide init ksh)"