SkillAgentSearch skills...

Zce.zsh

# zsh EasyMotion/ace-jump-mode

Install / Use

/learn @hchbaw/Zce.zsh
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

vim's EasyMotion / Emacs's ace-jump-mode for zsh.

Author: Takeshi Banse takebi@laafc.net

License: BSD-3

Thank you very much, Kim Silkebækken and winterTTr! I want to use the EasyMotion/ace-jump-mode in zsh.

//// //// image::https://github.com/hchbaw/zce.zsh/raw/readme/zce.zsh.gif[zsh.zsh demo]

Install

Please source it and bind the function to your favorite key.


% . zce.zsh % bindkey "^Xz" zce

Styles

:zce:* keys:: Keys to be used for target characters. + (default: the result of setopt braceccl; ${(j..)$(print {a-z} {A-Z})})

:zce:* fg:: A highlight sepc for target characters. + (default: 'fg=196,bold')

:zce:* bg:: A highlight spec for BUFFER during zce is in effect. + (default: 'fg=black,bold')

:zce:* prompt-char:: A prompt string for querying the searching character. + (default: '%{\e[1;32m%}Search for character:%{\e[0m%} ')

:zce:* prompt-key:: A prompt string for querying the target character. + (default: '%{\e[1;32m%}Target key:%{\e[0m%} ')

:zce:* search-case:: 'ignorecase', 'smartcase' or empty('default'). The case of the searching character will or will not be ignored on this value. + Example (the searching character a or A for the command line buffer aA maches as below) : + [width="100%",options="header"] |============================================================ |search / buffer |'ignorecase'|'smartcase'|empty(or 'default') |search a for aA |a, A |a, A |a |search A for aA |a, A |A |A |============================================================

customization example


[source,zsh]
----
() {
  setopt localoptions braceccl
  zstyle ':zce:*' keys ${(j..)$(print {a-z})}
}
zstyle ':zce:*' fg 'fg=white,bold'
zstyle ':zce:*' bg 'fg=7'
zstyle ':zce:*' prompt-char '%{\e[1;32m%}Character:%{\e[0m%} '
zstyle ':zce:*' prompt-key '%{\e[1;32m%}Key:%{\e[0m%} '
zstyle ':zce:*' search-case smartcase
----

Notes
-----

Optionally you can use the zcompiled file with the autoloading for a little faster loading on every shell start up, if you zcompile the necessary functions.
zcompile `zce.zsh` to `~/.zsh/zfunc/zce`:

----
% Z=~/c/experiment/zsh/zce.zsh/zce.zsh; ($SHELL -c ". $Z && zce-zcompile $Z ~/.zsh/zfunc")
** zcompiling zce in ~/.zsh/zfunc for a little faster startups...
+ mkdir -p ~/.zsh/zfunc
* writing code ~/.zsh/zfunc/zce
* re-compiling ~/.zsh/zfunc/zce.zwc: succeeded
** All done.
** Please update your .zshrc to load the zcompiled file like this,
-- >8 --
## zce.zsh stuff.
# source ~/c/experiment/zsh/zce.zsh/zce.zsh
autoload -w ~/.zsh/zfunc/zce; zle -N zce
# bindkey "^Xz" zce
-- 8< --
----

Please copy and paste the contents between `-- >8 --` and `-- 8< --`  into your `~/.zshrc`
View on GitHub
GitHub Stars67
CategoryDevelopment
Updated1mo ago
Forks6

Languages

Shell

Security Score

95/100

Audited on Feb 6, 2026

No findings