Выделите текущее поисковое соответствие в страницах справочника

Это работает в одной передаче через файл и не должно хранить целый файл в памяти. Это действительно сохраняет открытые дескрипторы файлов для каждого целевого файла.

awk -F '\t' '
    NR==FNR {population[$1]=$2; next}
    FNR==1 {
        for (i=1; i<=NF; i++) {
            destination[i] = population[$i] ".txt"
        }
    }
    {
        delete separator
        for (i=1; i<=NF; i++) {
            printf "%s%s", separator[destination[i]], $i > destination[i]
            separator[destination[i]] = FS
        }
        for (file in separator) {
            printf "\n" > file
        }
    }
' populations.txt database.txt
5
28.10.2014, 12:02
1 ответ

Это управляется через MANPAGER.

Страницы руководства по умолчанию для пейджера из меньше -is.

Можно просто выделить текущий выбор:

man -P "less -isg" <command>

Или установить переменную MANPAGER:

export MANPAGER="less -isg"

Можно также использовать vim, где курсор подсвечен, чтобы текущий выбор отображался по-другому.:

 man -P "sh -c \"col -b | vim -c 'set ft=man ts=8 nomod nolist nonu' \
    -c 'nnoremap i <nop>' \
    -c 'nnoremap <Space> <C-f>' \
    -c 'noremap q :quit<CR>' -\"" <command>

Взято из Zameer Manji:

  1. ft=man позволяет раскрашивать man-страницу.
  2. ts=8 обеспечивает меньшую ширину совпадения символов табуляции.
  3. nomod удаляет предупреждение об изменении при попытке выхода.
  4. nonu удаляет номера строк.
  5. нолист отключает листовки, так что отслеживающие пробелы и дополнительные табуляции не выделяются.
  6. nnoremap i гарантирует, что мы случайно не войдем в режим вставки при просмотре man-страницы.

Плюс моя собственная возможность использовать пространство для разбивки по страницам и qu с помощью q:

-c 'nnoremap <Space> <C-f>'
-c 'noremap q :quit<CR>'

Установите его в качестве пейджера по умолчанию, добавив его в профиль по умолчанию:

export MANPAGER="sh -c \"col -b | vim -c 'set ft=man ts=8 nomod nolist nonu' \
    -c 'nnoremap i <nop>' \
    -c 'nnoremap <Space> <C-f>' \
    -c 'noremap q :quit<CR>' -\""
5
27.01.2020, 20:39

Теги

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