Быстрое открыте url для ленивых


ramok аватар

ramok - Posted on 19 Январь 2006

Мне постоянно присылают в icq и irc всевозможные ссылки и для их открытия приходилось делать множество телодвижений, как то открытие/переключение в броузер, открытия окна, копирования ссылки, открытия..
Это решение позволяет выделять текст в котором находятся ссылки и нажатием клавиши открыть все эти ссылки в броузере.<

Во-первых нам нужен скрипт который из потока текста вылавливает ссылки. Регесп честно содран из man urlview Ж:-D

% cat ~/bin/cut-urls 
#!/usr/bin/env perl
# by 
# cut urls from stdio
# regex from man urlview
 
while(<>)
{
    while (s$((((http|https|ftp|gopher)|mailto):(//)?[^< >"\t]*|(www|ftp)[0-9]?\.[-a-z0-9.]+)[^".,;\t\n\r< >\):]?[^,< >"\t]*[^".,;\t\n\r< >\):])$$)
    {
        print "$1\n";
    }
}
%

Во вторых существует такая замечательная программа как xclip которая позволяет работать с буфером X в консоли.
Проверяем как это работает. Выделяю в с помощью мышки несколько строчек в которых находится url и запускаю

% xclip -o | ~/bin/cut-urls
http://linsovet.com/node/
%

Ну а передать эти ссылки броузеру - дело техники Ж:-)
Если используется fluxbox то добавим в ~/.fluxbox/keys

Mod4 f :ExecCommand rxvt -e elinks -session-ring 8765 -touch-files 1 `xclip -o | ~/bin/cut-urls`
Mod4 w :ExecCommand for i in `xclip -o | ~/bin/cut-urls`; do mozilla-firefox  -remote "openURL($i,new-tab)"; done

или при использовании xbindkeys (который работает при любом оконном менеджере), то добавим в ~/.xbindkeysrc

# open urls from X11 clipboard in X11 browser
"for i in `xclip -o | ~/bin/cut-urls`; do x-www-browser "$i"; done"
    mod4+w
 
# open urls from X11 clipboard in elinks
"x-terminal-emulator -e www-browser `xclip -o | ~/bin/cut-urls`"
    mod4+f

Теперь если я хочу открыть ссылки, я просто выделяю их с помощью мыши и жму win+f и открываются ссылки в elinks в табах, или по win+w в firefox тоже в табах.

Для независящего от оконного менеджера запуска программ по горячим клавишам рекомендуется xbindkeys.

Дам hit для развития идеи: есть пакет mime-support (а Debian так и называется) который умеет вот такое

NAME
       run-mailcap,  see,  edit,  compose,  print - execute programs via entries in the
       mailcap file

Тоесть запуск нужного приложения в зависимости от настроек mailcap базы данных(для тех кто не в курсе - это позволяет делать запуск приложения в зависимости от его типа. man mime
Дерзайте Ж:-)

Может быть следующий раз я расскажу запуск приложений из zsh для лентяев..
Вот и все. Приятного лентяйничания Ж:-)

0
Ваша оценка: Ничего

some times in our file, selection or output there are a lot duplicated URLs. It could make us problems. For eliminating it I suggest to add to your cut-url script:

... | sort | uniq

хмм.. прошестил хистори icq , получил такие интересные url как:

ftp.iso - видимо файлик

ftp:x:14:50:FTP
ftp:/sbin/nologin - цитаты из /etc/passwd =)

ftp:ftp - видимо аргумент команды chown =)

хех. можно и подправить как руки дойдут Ж:-)
--
Signature invent in progress 24% ##........

grep -Eo '((((http|https|ftp|gopher)|mailto):(//)?[^<>"[:space:]]*|(www|ftp)[0-9]?\.[-a-z0-9.]+)[^".,;<>\):[:space:]]?[^,<>"[:space:]]*[^".,;<>\):[:space:]])'

Я бы посоветовал добавить ключ "-i", чтобы регистр не учитывать, не всегда же все урлы в нижнем регистре.

открыл для себя grep -o
век живи, век rtfm Ж:-)
--
Signature invent in progress 24% ##........

Да... Я тоже для себя открыл grep -o =)))
Шок просто... Недавно скрипт писал (проверка IP по спам базам) и ругался, что греп не умеет выдирать только-то, что нужно :))) Да и на себя ругался, что не знаю какая прога это делает %).
Аффтару огромный респект!!! =)))

И вообще регулярка какая-то страшная в этом urlview... ((http|https|ftp|gopher)|mailto), когда можно (http|https|ftp|gopher|mailto) и т.д.