This is a Python3 clone of François Fleuret's excellent selector tool.
Just type some characters and see which entries match your words.
You can search for whole sentences by prefixing your search with a double quote.
Use up and down arrows to navigate the list.
Escape/Backspace on the result list returns to the search input.
Escape on the search input closes selecta.
Press Enter to copy the selected entry to the console.
CTRL+a toggles case sensitivity
CTRL+r toggles regex search
pip install selecta
Install the keyboard shortcut ALT+{key}:
selecta_add_keybinding {the alt key you want to use}
This will append one of the following lines to your ~/.bashrc/zshrc:
bind -x '"\C-[{key}":"\selecta -b -y <(history)"'
bindkey -s "^[{key}" "selecta -z -y <(history)^M"
Delete your old keybinding from .bashrc/.zshrc and register the new version with:
selecta_add_keybinding
usage: selecta [-h] [-i] [-b] [-z] [-e] [-a] [-d] [-y] [--bash] [--zsh]
[infile]
positional arguments:
infile the file which lines you want to select eg. <(history)
optional arguments:
-h, --help show this help message and exit
-i, --reverse-order reverse the order of the lines
-b, --remove-bash-prefix
remove the numeric prefix from bash history
-z, --remove-zsh-prefix
remove the time prefix from zsh history
-e, --regexp start in regexp mode
-a, --case-sensitive start in case-sensitive mode
-d, --remove-duplicates
remove duplicated lines
-y, --show-matches highlight the part of each line which matches the
substrings or regexp
--bash standard for bash history search, same as -b -i -d
--zsh standard for zsh history search, same as -b -i -d