@@ -41,6 +41,12 @@ render() {
4141 sed ' s/#\([^ ]*\)/\x1b[36m#\1\x1b[0m/g'
4242}
4343
44+ # format for picker: url<tab>Title #tag1 #tag2 (with colored tags)
45+ picker_format () {
46+ sed ' s/^- \[\([^]]*\)\](\([^)]*\))\(.*\)/\2\t\1\3/' |
47+ sed ' s/#\([^ ]*\)/\x1b[36m#\1\x1b[0m/g'
48+ }
49+
4450case " $OPERATION " in
4551help)
4652 echo " Usage: ,bm [command] [url]"
@@ -111,31 +117,31 @@ edit)
111117 ;;
112118show | pick)
113119 check_bookmarks
114- result=" $( cat " $BM_FILE " | ,picker -1 -i -m -e ${SEARCH_TERM: +" $SEARCH_TERM " } || true) "
120+ result=" $( cat " $BM_FILE " | picker_format | ,picker -1 -i -m -e --ansi -d $' \t ' --with-nth 2.. ${SEARCH_TERM: +" $SEARCH_TERM " } || true) "
115121 if [ -z " $result " ]; then
116122 echo " No links found" >&2
117123 exit 1
118124 fi
119- echo " $result " | extract_url
125+ echo " $result " | cut -f1
120126 ;;
121127open)
122128 check_bookmarks
123- result=" $( cat " $BM_FILE " | ,picker -1 -i -m -e ${SEARCH_TERM: +" $SEARCH_TERM " } || true) "
129+ result=" $( cat " $BM_FILE " | picker_format | ,picker -1 -i -m -e --ansi -d $' \t ' --with-nth 2.. ${SEARCH_TERM: +" $SEARCH_TERM " } || true) "
124130 if [ -z " $result " ]; then
125131 echo " No links found" >&2
126132 exit 1
127133 fi
128- echo " $result " | extract_url |
134+ echo " $result " | cut -f1 |
129135 while IFS= read -r url; do
130136 open " $url "
131137 done
132138 ;;
133139remove)
134140 check_bookmarks
135- selected=" $( cat " $BM_FILE " | ,picker -i -m -e ${SEARCH_TERM: +" $SEARCH_TERM " } || true) "
141+ selected=" $( cat " $BM_FILE " | picker_format | ,picker -i -m -e --ansi -d $' \t ' --with-nth 2.. ${SEARCH_TERM: +" $SEARCH_TERM " } || true) "
136142 if [ -n " $selected " ]; then
137- echo " $selected " | while IFS= read -r line ; do
138- grep -vF " $line " " $BM_FILE " > " $BM_FILE .tmp"
143+ echo " $selected " | cut -f1 | while IFS= read -r url ; do
144+ grep -vF " ( $url ) " " $BM_FILE " > " $BM_FILE .tmp"
139145 mv " $BM_FILE .tmp" " $BM_FILE "
140146 done
141147 fi
0 commit comments