mirror of
https://github.com/junegunn/fzf.git
synced 2025-11-20 01:23:43 -05:00
Destroyed _Footer (markdown)
60
_Footer.md
60
_Footer.md
@@ -1,60 +0,0 @@
|
|||||||
## Editing Browse chrome bookmarks
|
|
||||||
|
|
||||||
```
|
|
||||||
# b- browse chrome bookmarks
|
|
||||||
b() {
|
|
||||||
local open ruby output
|
|
||||||
open=xdg-open
|
|
||||||
ruby=$(which ruby)
|
|
||||||
output=$($ruby << EORUBY
|
|
||||||
# encoding: utf-8
|
|
||||||
|
|
||||||
require 'json'
|
|
||||||
FILE = '~/.config/google-chrome/Default/Bookmarks'
|
|
||||||
CJK = /\p{Han}|\p{Katakana}|\p{Hiragana}|\p{Hangul}/
|
|
||||||
|
|
||||||
def build parent, json
|
|
||||||
name = [parent, json['name']].compact.join('/')
|
|
||||||
if json['type'] == 'folder'
|
|
||||||
json['children'].map { |child| build name, child }
|
|
||||||
else
|
|
||||||
{ name: name, url: json['url'] }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def just str, width
|
|
||||||
str.ljust(width - str.scan(CJK).length)
|
|
||||||
end
|
|
||||||
|
|
||||||
def trim str, width
|
|
||||||
len = 0
|
|
||||||
str.each_char.each_with_index do |char, idx|
|
|
||||||
len += char =~ CJK ? 2 : 1
|
|
||||||
return str[0, idx] if len > width
|
|
||||||
end
|
|
||||||
str
|
|
||||||
end
|
|
||||||
|
|
||||||
width = `tput cols`.to_i / 2
|
|
||||||
json = JSON.load File.read File.expand_path FILE
|
|
||||||
items = json['roots']
|
|
||||||
.values_at(*%w(bookmark_bar synced other))
|
|
||||||
.compact
|
|
||||||
.map { |e| build nil, e }
|
|
||||||
.flatten
|
|
||||||
|
|
||||||
items.each do |item|
|
|
||||||
name = trim item[:name], width
|
|
||||||
puts [just(name, width),
|
|
||||||
item[:url]].join("\t\x1b[36m") + "\x1b[m"
|
|
||||||
end
|
|
||||||
EORUBY
|
|
||||||
)
|
|
||||||
|
|
||||||
echo -e "$output" |
|
|
||||||
fzf-tmux -u 30% --ansi --multi --no-hscroll --tiebreak=begin |
|
|
||||||
awk 'BEGIN { FS = "\t" } { print $2 }' |
|
|
||||||
xargs $open &>/dev/null
|
|
||||||
|
|
||||||
}
|
|
||||||
```
|
|
||||||
Reference in New Issue
Block a user