Bookmarks im Schnellzugriff
Ihr kennt vielleicht die .ssh/config-Datei. Man trägt da die ganzen hässlichen Details ein: Welcher User, welcher SSH-Key, Legacy Crypto, usw. Jetzt kann man die Autocompletion in der Command-Line verwenden und spart sich dadurch echt viel Tipperei.
$ ssh host<TAB><TAB>
Sowas hätte ich gerne für Bookmarks
Zunächst schreibt man ein einfaches Skript ff, mit dem man Webseiten aufrufen kann und legt es irgendwo im $PATH ab.
#/usr/bin/env bash
[ $# -eq 0 ] && exit
[ -z "$1" ] && exit
case $1 in
heise.de)
# -> Newsticker
firefox --new-tab "https://www.$1/newsticker/"
;;
fefe.de)
# w3m :)
w3m -no-mouse "https://blog.$1"
;;
*)
# Default
firefox --new-tab "https://$1"
esac
Ein Aufruf sähe dann z.B. so aus:
$ ff heise.de
Autocompletion aktivieren
In die Datei .bash_completion schreibt man folgende Zeilen.
_ff() {
local arguments suggestions
COMPREPLY=()
arguments="${COMP_WORDS[COMP_CWORD]}"
suggestions=""
[ -f ~/.bookmarks ] && suggestions=$(<~/.bookmarks)
COMPREPLY=( $(compgen -W "${suggestions}" -- ${arguments}) )
return 0
}
complete -F _ff ff
Und in die Datei .bookmarks schreibt man die Vorschläge, die man gerne sehen möchte.
heise.de
fefe.de
golem.de
theregister.co.uk
Ergebnis
$ ff <TAB><TAB>
$ ff h<TAB><TAB>
Update
Oh, Buku sieht aber vielversprechend aus. Es ist in Debian enthalten und auf den ersten Blick sehr mächtig.
Die Daten lassen sich auch prima weiterverarbeiten. Zum Beispiel kann man eine Suche durchführen und JSON als Ausgabe wählen:
$ buku --deep -s suchbegriff -j | jq -M '.[] | .uri'
Wow.