Features:
- full-text search with semantic ranking (FTS5)
- fuzzy search
--fzf
(CTRL-O: open, CTRL-E: edit) - tags for classification
- knows how to open HTTP URLs, directories, files (e.g. Office, Images, ....)
- can execute URI strings as shell commands via protocol prefix: 'shell::'
URI-Example:
shell::vim +/"## SqlAlchemy" $HOME/document.md
- automatically enriches URLs with title and description from Web
To fully use bkmr
's full-text query power see: https://www.sqlite.org/fts5.html (chapter 3).
bkmr --help
A bookmark manager for the terminal
Usage: bkmr [OPTIONS] [NAME] [COMMAND]
Commands:
search Searches Bookmarks
open Open/launch bookmarks
add Add a bookmark
delete Delete bookmarks
update Update bookmarks
edit Edit bookmarks
show Show Bookmarks (list of ids, separated by comma, no blanks)
tags Tag for which related tags should be shown. No input: all tags are printed
create-db Initialize bookmark database
help Print this message or the help of the given subcommand(s)
Arguments:
[NAME] Optional name to operate on
Options:
-c, --config <FILE> Sets a custom config file
-d, --debug... Turn debugging information on
-h, --help Print help information
-V, --version Print version information
# FTS examples (https://www.sqlite.org/fts5.htm)
bkmr search 'security "single-page"'
bkmr search '"https://securit" *'
bkmr search '^security'
bkmr search 'postgres OR sqlite'
bkmr search 'security NOT keycloak'
# FTS combined with tag filtering
bkmr search -t tag1,tag2 -n notag1 <searchquery>
# Match exact taglist
bkmr search -e tag1,tag2
# Search by any tag and sort by bookmark age ascending
bkmr search -T tag1,tag2 -O
# Adding URI to local files
bkmr add /home/user/presentation.pptx tag1,tag2 --title 'My super Presentation'
# Adding shell commands as URI
bkmr add "shell::vim +/'# SqlAlchemy' sql.md" shell,sql,doc --title 'sqlalchemy snippets'
Tags must be separated by comma without blanks.
cargo install bkmr
- initialize the database:
bkmr create-db db_path
- add URLs
Location of created sqlite database must be known:
export "BKMR_DB_URL=db-path"
- ca. 20x faster than the Python original twbm after warming up Python.
time twbm search 'zzz*' --np
0. zzzeek : Asynchronous Python and Databases [343]
https://techspot.zzzeek.org/2015/02/15/asynchronous-python-and-databases/
async, knowhow, py
Found: 1
343
real 0m0.501s
user 0m0.268s
sys 0m0.070s
time bkmr search 'zzz*' --np
1. zzzeek : Asynchronous Python and Databases [343]
https://techspot.zzzeek.org/2015/02/15/asynchronous-python-and-databases/
async knowhow py
real 0m0.027s
user 0m0.008s
sys 0m0.016s