Навигация и изображения в текстовом браузере Lynx

[

] Очевидно, это можно сделать проще с помощью []udevadm[], и я только что узнал, как это сделать. [

] [

]Чтобы получить []DEVNAME[] из []udevadm[] нужно только:[

] [
udevadm info -rq name $PATH
] [

]Например, если вы хотите узнать имя []/dev[] для []/sys/dev/char/5: 1[] вы бы сделали:[

] [
udevadm info -rq name /sys/dev/char/5:1
] [

]OUTPUT[

] [
/dev/console
] [

]Вариант []-r[] заключается в указании пути []--root[]ed - без него вышеприведенный результат будет считываться только с []console[]. Опция []-q[] указывает базу данных []--query[] и здесь берет имя операнда []name[] - потому что нам нужна []DEVNAME[]. [

] [

]Очень простой способ найти путь к символу char и/или блочному устройству, учитывая только мажор:минорные числа могут выглядеть так:[

] [
mmdev() for d in /sys/dev/[cb]*/$1:$2
        do  [ -e "$d" ] || return
            printf %c:%s: "${d#/*/*/}" "${d##*/}"
            udevadm info -rq name "$d"
        done
] [

]Так что запуск:[

] [
mmdev 8 0
] [

]печатает...[

] [
b:8:0:/dev/sda
] [

]Вот первое, что я написал.[

] [
majminpath() {
    set -- ${1##*[!0-9]*} ${2##*[!0-9]*}
    udevadm info --export-db |
    sed 's|^[^=]*DEVNAME=||
         \|^[^/]|!h;/MAJOR=/N
         \|='"$1\n.*=${2?}"'$|!d;g'
}
] [

]Это просто сканирует []вывод udevadm info --export-db[] на наличие совпадающих чисел. Вывод выглядит так:[

] [
P: /devices/virtual/vc/vcsa4
N: vcsa4
E: DEVNAME=/dev/vcsa4
E: DEVPATH=/devices/virtual/vc/vcsa4
E: MAJOR=7
E: MINOR=132
E: SUBSYSTEM=vc

P: /devices/virtual/vc/vcsa5
N: vcsa5
E: DEVNAME=/dev/vcsa5
E: DEVPATH=/devices/virtual/vc/vcsa5
E: MAJOR=7
E: MINOR=133
E: SUBSYSTEM=vc

#...and so on
] [

]Рабочий процесс похож: [

] [
    ] [
  • ][

    ] попытка удалить строку [][^=]*DEVNAME=[] из заголовка каждой строки[

    ][
  • ] [
  • ][

    ], если в строке нет первого символа или первым символом является []/[] копирование этой строки поверх []h[] старое пространство[

    ][
  • ] [
  • ][

    ] если строка совпадает с []MAJOR=[], добавьте []N[] внешнюю входную строку к шаблону пространства [

    ][
  • ] [
  • ][

    ], если в шаблоне пространства 2 строки совпадают с []=$1\n. *=$2$[] затем скопируйте []h[] старое пространство поверх шаблонного пространства и выполните автопечать; в противном случае удалите шаблонное пространство[

    ][
  • ] [
] [

]Так что если я сделаю:[

] [
majminpath 7 133 ; majminpath 8 0 ; majminpath 8 1
] [

]OUTPUT[

] [
/dev/vcsa5
/dev/sda
/dev/sda1
] [

]Но, как указывает @xae, устройства блочного/зарядного типа могут разделять комбинации maj:min, и это может привести к печати более одного пути за вызов.[

].
1
24.01.2015, 02:07
2 ответа

Я не являюсь экспертом на Lynx, но я могу рекомендовать в минуту как возможную альтернативу. Это пронумеровало ссылки, которые зарабатывают навигацию на странице очень просто. Он также имеет возможность выбирать отдельные изображения для просмотра по вашему просмотру выбора. У Lynx есть некоторые расширенные функции для сброса текста и ссылок, которые не имеют, но для простых просмотра ELINKS - хороший выбор. Он также имеет просмотр вкладок, который является звездной особенностью

0
27.01.2020, 23:37

Собственно, два вопроса:

Во-первых, когда у вас есть страница, заполненная ссылками, lynx действительно предоставляет способы перемещения. Например, если у вас есть таблица со ссылкой в каждой ячейке, вы можете перемещаться влево/вправо, используя tab и back-tab (control-tab на многих терминалах), или клавиши курсора влево/вправо. Аналогично, вы можете перемещаться вверх/вниз, используя клавиши управления курсором вверх/вниз. Если вы не знакомы с привязкой клавиш, в Текущая карта клавиш (с помощью k) показаны клавиши и их использование.

Эти клавиши показаны в руководстве пользователя:

Navigating hypertext documents with Lynx

   The process of moving within a hypertext web, selecting and displaying
   links is known as "navigation." With Lynx almost all navigation can be
   accomplished with the arrow keys and the numeric keypad.
                                       +-------+-------+-------+
                                       | TOP   |  /|\  | Page  |
              arrow keys               | of    |   |   | UP    |
                                       | text 7|   |  8|      9|
              +---------+              +-------+-------+-------+
              | SELECT  |              |       |       |       |
              | prev /|\|              |  |
              | link  | |              |      4|      5|      6|
    +---------+---------+---------+    +-------+-------+-------+
    |    BACK | SELECT  | DISPLAY |    | END   |   |   | Page  |
    ||    | of    |   |   | DOWN  |
    |    doc. | link \|/| link    |    | text 1|  \|/ 2|      3|
    +---------+---------+---------+    +-------+-------+-------+

Одна из опций, которую вы можете установить, заставляет lynx нумеровать поля и/или ссылки на экране. При этом вы можете набрать номер поля/ссылки, а затем g, чтобы перейти к этому полю/ссылке.

Во-вторых, lynx (как и большинство браузеров) использует MIME-тип файлов, чтобы решить, что это за файлы, и mailcap, чтобы решить, как их отобразить. Как описано в руководстве пользователя:

Lynx and HTML Images

   As a text browser, Lynx does not display images as such -- you need to
   define  a  viewer  in  lynx.cfg: see there -- , but users can choose a
   number of ways of showing their presence.

   There are 3 choices in lynx.cfg, with 2 corresponding keys:
     MAKE_LINKS_FOR_ALL_IMAGES        *  IMAGE_TOGGLE
     MAKE_PSEUDO_ALTS_FOR_INLINES     [  INLINE_TOGGLE
     VERBOSE_IMAGES                   no corresponding key

   You can also use the Options Menu, as outlined below:
     key  lynx.cfg       FM KM .lynxrc    variable in source

       *  MAKE_LINKS_     Y  N       N    clickable_images
       [  MAKE_PSEUDO_    Y  N       N    pseudo_inline_alts
          VERBOSE_        Y  Y       Y    verbose_img

Эти опции указывают lynx, показывать ли изображения как ссылки. Если это ссылки, то активация ссылки (нажатие enter) скажет lynx отобразить изображение с помощью программы просмотра (которую вы, предположительно, настроили). Это внешняя программа. Вот несколько примеров из моей конфигурации:

VIEWER:application/postscript:gv %s&:XWINDOWS
VIEWER:application/pdf:acroread %s&:XWINDOWS
2
27.01.2020, 23:37

Теги

Похожие вопросы