Skip to content

A zsh histb browser using skim. Implemented in rust.

License

Notifications You must be signed in to change notification settings

SrTobi-Forks/zsh-histdb-skim

 
 

Repository files navigation

zsh-histdb-skim

This is a reimplementation of https://github.com/m42e/zsh-histdb-fzf in rust and using skim as a library.

Why

zsh-histdb-fzf works, but it is a bit quirky. It has for sure some flaws, regarding responsiveness and communication with processes. skim offers a fzf like behavior and is available as library in rust. It lacks some highlighting in the header, and has a bit different order/matching algorithm.

This should result in better performance, responsiveness and a more stable behavior.

Why rust?

skim is available in rust. I have never tried rust with a purpose before. I wanted to give it a try and learn something new.

How it works

Well, it accesses the zsh histdb. It lets you search on different levels.

What do you have to do?

Install the plugin, e.g. using zplug.

  zplug 'm42e/zsh-histdb-skim', from:github, use:zsh-histdb-skim.zsh, at:main

It downloads the binary (if available) automatically. You can do manually by calling histdb-skim-download.

The plugin calls bindkey but some other plugins may overwrite. In this case you would have to do it yourself:

bindkey '^R' histdb-skim-widget

Building

cargo build --release
mkdir -p bin
mv target/release/zsh-histdb-skim bin

TODO

  • improve rust code

Apologies 😉

While I stole the idea from myself, this is my first rust project ever. So I would be glad for tips and improvement PRs.

About

A zsh histb browser using skim. Implemented in rust.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 71.9%
  • Shell 19.9%
  • Jsonnet 8.2%