This is yet another port of garybernhardt/selecta in C++ using Ncurses for the terminal window. UTF-8 is supported.
Despite the fact that there are already a whole lot of selecta alternatives (fzf, icepick), I decided to write a clone to further explore C++11 (e.g. threads). In addition, I have never done anything with ncurses before.
- highlight matching string in match list
- switch case sensitivity for search
F2
- multiple matchers (Simple string matcher, CmdT matcher):
F3
- status-line shows some stats about the candidates
- resize support
- depending on the hardware, matching algorithm is executed concurrent
Home
go to the beginning match listEnd
go to the beginning match listF2
toggle case-sensitivityF3
switch the matcherArrow-Up
andArrow-Down
for selecting string from match list^U
Empty search term^N
alias forArrow-Down
^P
alias forArrow-Up
- move matcher in its own (static) library
- ability to load matcher via a library (plugin)
- add more key bindings, see readline
cmake
installation target- make coloring adjustable (via config file)
# Use find to get a list of all files, use clecta to select the desired file which shall be opened with vim
vim $(find . | clecta)
- Ncurses
git clone https://github.com/awidegreen/clecta
mkdir clecta/build
cd clecta/build
cmake ..
make
# or use: make -j`nproc`
In the build directory, use:
- the test target:
make test
or - run the tests manually:
tests/clecta-tests
Copyright (c) Armin Widegreen
Distributed under the BSD-Clause-2 License, see LICENSE.