LINUX.ORG.RU
ФорумTalks

qman — man page viewer здорового человека

 , qman,


0

3

Откопал ссылку на такую штуку в Арчевики. Простая программа, реализующая для man pages в терминале то, что еще 35 лет назад было в справочных системах под DOS-ом, + большее.

  • Страницы оглавлений, отображающие все маны, установленные в системе, сгруппированные по категориям
  • Интерактивный инкрементальный apropos и whatis (search as you type)
  • Инкрементальный поиск по странице
  • Активные гиперссылки на другие маны
  • Активные гиперссылки на http(s) и email адреса.

Навигация вверх-вниз по странице сделана максимально удобным образом:

  • Если в направлении листания на экране есть следующая ссылка, фокус переходит к ней.
  • Если в направлении листания на экране следующей ссылки не видно, текст сдвигается на 1 строку.

Программа реализована на Си с минимумом зависимостей.

Зависимости в собранном виде и размер:

vadim@aquila:~$ ldd /usr/bin/qman
	linux-vdso.so.1 (0x00007dbe6007f000)
	libncursesw.so.6 => /usr/lib/libncursesw.so.6 (0x00007dbe5ffa3000)
	libinih.so.0 => /usr/lib/libinih.so.0 (0x00007dbe5ff9e000)
	libc.so.6 => /usr/lib/libc.so.6 (0x00007dbe5fdb2000)
	/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007dbe60081000)
vadim@aquila:~$ ls -lh /usr/bin/qman
-rwxr-xr-x 1 root root 116K мая 29 11:43 /usr/bin/qman

Сорцы и скриншоты тут: https://github.com/plp13/qman

★★

Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от dataman

При зажатом shift эмулятор терминала принудительно выделяет текст мышью, независимо от того, что по этому поводу думает приложение.

Во всяком случае, в моём терминале работает. Не знаю, как в вашем)

Позволяет выделить любой текст, хоть интерфейс mc.

wandrien ★★
() автор топика
Ответ на: комментарий от dataman

Управление мышью вообще не сделано, насколько я понял. Только какие-то наброски к нему.

Например, тыкнуть мышью в ссылку можно (и она выделится). А перейти по ссылке – нет.

wandrien ★★
() автор топика
Ответ на: комментарий от wandrien

При зажатом shift эмулятор терминала принудительно выделяет текст мышью

Да, в WezTerm тоже так. Но часто нужен и двойной клик по слову.

dataman ★★★★★
()
Ответ на: комментарий от Xintrea

Должно быть хотя бы так:

Ненужно. Там управление элементарное и запоминается за 2 минуты. Это не emacs.

wandrien ★★
() автор топика
Ответ на: комментарий от dataman

Но часто нужен и двойной клик по слову.

Хм, никогда об этом не задумывался.

Проверил на mc: shift + двойной клик выделяет слово.

wandrien ★★
() автор топика
Ответ на: комментарий от wandrien
Retrieving bug reports... Done
Parsing Found/Fixed information... Done
grave bugs of lilyterm (→ 0.9.9.4+git20150208.f600c0-5+b2) <Outstanding>
 b1 - #970419 - lilyterm: No longer starts (likely related to VTE changes)
Summary:
 lilyterm(1 bug)
Are you sure you want to install/upgrade the above packages? [Y/n/?/...]

2015

Ладно, попробую. :)


Упал.

(lilyterm:31233): VTE-CRITICAL **: 16:20:38.736: void vte_terminal_match_set_cursor_type(VteTerminal*, int, GdkCursorType): assertion 'tag >= 0' failed

(lilyterm:31233): VTE-CRITICAL **: 16:20:38.736: void vte_terminal_match_set_cursor_type(VteTerminal*, int, GdkCursorType): assertion 'tag >= 0' failed

(lilyterm:31233): VTE-CRITICAL **: 16:20:38.736: void vte_terminal_match_set_cursor_type(VteTerminal*, int, GdkCursorType): assertion 'tag >= 0' failed

(lilyterm:31233): VTE-CRITICAL **: 16:20:38.736: void vte_terminal_match_set_cursor_type(VteTerminal*, int, GdkCursorType): assertion 'tag >= 0' failed
dataman ★★★★★
()
Последнее исправление: dataman (всего исправлений: 1)
Ответ на: комментарий от dataman

Это в какой ОС?

У меня древний пакет:

$ pacman -Qi lilyterm 
Название             : lilyterm
Версия               : 0.9.9.2-2
Описание             : A light and easy to use libvte based X terminal emulator
Архитектура          : x86_64
URL                  : http://lilyterm.luna.com.tw/index_en.html
Лицензии             : GPL3
Группы               : Нет
Предоставляет        : Нет
Зависит от           : vte
Доп. зависимости     : Нет
Требуется            : Нет
Опционально для      : Нет
Конфликтует с        : Нет
Заменяет             : Нет
Установленный размер : 651,00 KiB
Сборщик              : Kyle Keen <keenerd@gmail.com>
Дата сборки          : Пт 16 авг 2013 07:19:47
Дата установки       : Сб 28 янв 2017 22:58:54
Причина установки    : Явно установлен
Установочный скрипт  : No
Проверен             : SHA-256

Пришло время форкнуть lilyterm, что ли. Давно хотел.

wandrien ★★
() автор топика
Ответ на: комментарий от wandrien

Там управление элементарное и запоминается за 2 минуты

На основе чего запоминается? Откуда брать информацию об управлении?

А в течении какого времени вспоминается?

Xintrea ★★★★★
()
Ответ на: комментарий от Xintrea

На основе привычности к другим подобным программам.

wandrien ★★
() автор топика
Ответ на: комментарий от greenman

во, у меня такой патч (md2man есть в репах, а pandoc нету):

diff -ruN a/meson.build b/meson.build
--- a/meson.build	2024-05-13 03:14:21.000000000 +0900
+++ b/meson.build	2024-05-29 21:56:24.557432975 +0900
@@ -40,12 +40,12 @@
 )
 
 # Manual page
-pandoc = find_program('pandoc')
-pandoc_cmd = [pandoc, '@INPUT@', '-s', '-t', 'man', '-o', '@OUTPUT@']
+md2man = find_program('md2man')
+md2man_cmd = [md2man, '-output', '@OUTPUT@', '@INPUT@']
 custom_target('manpage',
   input: 'qman.1.md',
   output: 'qman.1',
-  command: pandoc_cmd,
+  command: md2man_cmd,
   install: true,
-  install_dir: 'man/man1'
+  install_dir: 'share/man/man1'
 )
irton ★★★★★
()
Ответ на: комментарий от irton

md2man

Можно заменить на lowdown -s -tman <input_file> -o <output_file>.

dataman ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)