[О блоге]
[наверх]
[пред]
[2021-09-01 13:46:28+03:00]
[95379ffa55702403012f547af8a04c34fd7c1217]
Темы: [tip][web]
edbrowse вполне себе серьёзный броузер
Подольше поигрался я с этим броузером (b808c84c797a82f570dcf478fbb83ab3b9d2efb0)
и очень впечатлили подходы в нём. А точнее не в самом броузере, а этом
ed редактора на стероидах. В отличии от стандартного ed-а, тут есть
параллельные независимые сессии. Аналог буферов vi. Каждая сессия имеет
свою "историю" переходов между буферами (файлами). Открывая новую
страницу, у меня в текущей сессии появляется новый буфер, но до старого
можно дойти через "^" команду. Если мне хочется открыть несколько ссылок
в отдельных табах, то в eb (edbrowse) я сделаю:
> b www.stargrave.org/Links.html
< 6757
< 941
> /Aerospace/g
< *http://www.stargrave.org/LinksCatAerospace.html
< 3512
< 430
> M
< moved to session 2
< • {Aerospace (4 items)}:| |
> /DNS/g
< *http://www.stargrave.org/LinksCatDNS.html
< 4936
< 786
> M
< moved to session 3
< • {DNS (10 items)}:| |
> bflist
< 1: Interesting links (Sergey Matveev’s homepage)
< 2: Links category: Aerospace (Sergey Matveev’s homepage)
< 3: Links category: DNS (Sergey Matveev’s homepage)
"M" создаёт новую сессию, перемещает текущий "буфер" в неё, а в
исходящей сессии выполняет "^" команду перемещения по истории назад.
Из-за кэша ничего лишнего не подгружается, зато можно ссылки в фоне
пооткрывать удобно независимые (пример из документации):
< 1g
< M2
< 2g
< M3
< 3g
< M4
Ввод в textarea делается тоже через выделение нового буфера в котором
заполняется текст, а после сохранения он станет содержимым textarea.
Можно вызвать редактирование строки с ссылками, чтобы например добавить
в файл с закладками:
> b www.stargrave.org/Links.html
< 6757
< 941
> /XBEL/
< All of these are also exported in {recfile}, {XBEL} and {OPML} formats.
> g?
< multiple links present, please use g1 through g3
> g2?
< http://www.stargrave.org/links.xbel
> A
185
> ,n
< 1 <br><a href='http://www.stargrave.org/links.rec'>
< 2 recfile
< 3 </a>
< 4 <br><a href='http://www.stargrave.org/links.xbel'>
< 5 XBEL
< 6 </a>
< 7 <br><a href='http://www.stargrave.org/links.opml'>
< 8 OPML
< 9 </a>
> /xbel/iJ
> /xbel/iJ
> v/xbel/d
> w+ $books
< 61
> ^
< All of these are also exported in {recfile}, {XBEL} and {OPML} formats.
В режиме файлового менеджера эти сессии используются для открытия разных
директорий параллельно. Переместив строчку с файлом из одного буфера в
другой -- будет реально перемещение файла. Можно и копировать его:
% mkdir src dst
% touch src/gotcha
% eb src
< directory mode
< 54
> ,n
< 1 ../ 1472 Sep 1 2021 13:58
< 2 gotcha 0 Sep 1 2021 13:54
> e dst
< directory mode
< 27
> M
< moved to session 2
< gotcha 0 Sep 1 2021 13:54
> /gotcha/m2
< ?
> h
< directories are readonly, type dw to enable directory changes
> dw
> /gotcha/m2
< gotcha → dst
> e2
< dst
> /got/t1
< gotcha ≡ src
> q
% bfs -type f src dst
src/gotcha
dst/gotcha
Небольшие скриптовые способности достаточны чтобы реализовать jump-list
как в Lynx:
function+S{
b https://lite.duckduckgo.com/lite/?q=~0
/Next Page/+1
z20
}
> <S "hello world program"
[выдача 20 строчек DuckDuckGo игнорируя ненужный заголовок]
function+Spy{
b https://pypi.org/project/~0/
/^h1/
z20
}
> <Spy pygost
< 69245
< 7662
<
< h1 pygost 5.6
<
< pip install pygost < Copy PIP instructions>
< {Latest version}
<
< Released: Apr 22, 2021
[...]
Мне всё равно ещё непривычно сидеть и не видеть весь вывод, весь текст.
Нажимать ,n каждый раз -- геморройно, да и надо проматывать будет. Так
как я использую rlwrap с eb-ом (чтобы получить vi редактирование строки,
историю и автодополнение путей к файлам), то добавил в нём mapping на
F1, вводящий "<Scroll\n", который в свою очередь запускает вот такую функу:
function+Scroll{
+,+20n
if(?) {
+,$n
if(?) {
0<Scroll
}
}
}
Весь этот геморрой с if-ами только для того чтобы он мог проматывать по
20 строчек находясь и в конце файла. Долбя F1 я буду видеть chunk-и
текста. Но думаю что вообще сделать сохранение во временный файл и
натравливание на него less, нажав какой-нибудь F2. Но это наверное
совершенно не ed-way.
Видя как можно получить текст web-страницы или директории (или FTP
директории), что можно её всю из себя исковеркать всякими g// и v//
командами удаляющими ненужный мусор типа рекламы, а потом применяя
очередные команды -- понимаешь что в Plan9 Acme редактора ведь именно
подобная идея тоже исповедуется. Очень необычно и впечатляюще. Насколько
разными могут быть подходы к работе с текстом и манипуляциями с почтой,
web-ом, файлами и СУБД (ни почту, ни СУБД я в edbrowse не пробовал,
только читал в документации про них).
[оставить комментарий]