Bookmarks im Schnellzugriff

March 23, 2019 - Aiko Barz   IT

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.