Выделить синтаксис manpages?

Есть ли способ «раскрасить» manpages output? Я имею в виду - вывод, например:

man command_name
7
задан 18 April 2011 в 08:39

50 ответов

Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:

man() {
  /usr/bin/man $* | \
    col -b | \
    vim -R -c 'set ft=man nomod nolist' -
}
7
ответ дан 25 May 2018 в 22:02
  • 1
    и, наконец, я не буду нажимать j по ошибке все время – daithib8 18 April 2011 в 21:24
  • 2
    Ну, j отлично работает и меньше :) – Adam Byrtek 18 April 2011 в 21:26
  • 3
    Но вы должны изменить $* на "$@", чтобы избежать потенциальных проблем с пробелом. В противном случае, спасибо! – Scott Severance 21 April 2011 в 18:09
  • 4
    Я предлагаю небольшую модификацию, чтобы приблизиться к стилю less: замените vim на /usr/share/vim/vim72/macros/less.sh. – enzotib 25 April 2011 в 14:07

Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:

man() { /usr/bin/man $* | \ col -b | \ vim -R -c 'set ft=man nomod nolist' - }
7
ответ дан 25 July 2018 в 22:12

Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:

man() { /usr/bin/man $* | \ col -b | \ vim -R -c 'set ft=man nomod nolist' - }
7
ответ дан 26 July 2018 в 19:36

Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:

man() { /usr/bin/man $* | \ col -b | \ vim -R -c 'set ft=man nomod nolist' - }
7
ответ дан 31 July 2018 в 12:09

Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:

man() { /usr/bin/man $* | \ col -b | \ vim -R -c 'set ft=man nomod nolist' - }
7
ответ дан 2 August 2018 в 03:40

Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:

man() { /usr/bin/man $* | \ col -b | \ vim -R -c 'set ft=man nomod nolist' - }
7
ответ дан 4 August 2018 в 19:43

Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:

  man () {/ usr / bin / man $ * |  \ col -b |  \ vim -R -c 'set ft = man nomod nolist' -}  
7
ответ дан 6 August 2018 в 03:48

Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:

  man () {/ usr / bin / man $ * |  \ col -b |  \ vim -R -c 'set ft = man nomod nolist' -}  
7
ответ дан 7 August 2018 в 21:43

Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:

  man () {/ usr / bin / man $ * |  \ col -b |  \ vim -R -c 'set ft = man nomod nolist' -}  
7
ответ дан 10 August 2018 в 09:57

Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:

  man () {/ usr / bin / man $ * |  \ col -b |  \ vim -R -c 'set ft = man nomod nolist' -}  
7
ответ дан 13 August 2018 в 16:16
  • 1
    и, наконец, я не буду нажимать j по ошибке все время – daithib8 18 April 2011 в 21:24
  • 2
    Ну, j работает отлично и меньше :) – Adam Byrtek 18 April 2011 в 21:26
  • 3
    Но вы должны изменить $ * на "$ @" , чтобы избежать потенциальных проблем с пробелом. В противном случае, спасибо! – Scott Severance 21 April 2011 в 18:09
  • 4
    Я предлагаю небольшую модификацию, чтобы приблизиться к less style: замените vim на /usr/share/vim/vim72/macros/less.sh . – enzotib 25 April 2011 в 14:07

добавить export PAGER=most в .bashrc

5
ответ дан 25 May 2018 в 22:02
  • 1
    это здорово, но есть ли способ заставить его работать для команд HELP и INFO? – user 27 May 2016 в 11:56
  • 2
    это здорово, но есть ли способ заставить его работать для команд HELP и INFO? – user 27 May 2016 в 11:56
  • 3
    это здорово, но есть ли способ заставить его работать для команд HELP и INFO? – user 27 May 2016 в 11:56
  • 4
    это здорово, но есть ли способ заставить его работать для команд HELP и INFO? – user 27 May 2016 в 11:56
  • 5
    это здорово, но есть ли способ заставить его работать для команд HELP и INFO? – user 27 May 2016 в 11:56
  • 6
    это здорово, но есть ли способ заставить его работать для команд HELP и INFO? – user 27 May 2016 в 11:56
  • 7
    Это export PAGER="most" (с кавычками), и вам сначала нужно установить его, используя apt-get install most (cf. cyberciti.biz/faq/unix-linux-color-man-pages-configuration ). – Kurt Peek 17 January 2017 в 18:25
ах. добавление этого в ~ / .bashrc делает трюк. Однако это не идеально. но hey:

# Less Colors for Man Pages 
export LESS_TERMCAP_mb=$'\E[01;31m'       # begin blinking 
export LESS_TERMCAP_md=$'\E[01;38;5;74m'  # begin bold 
export LESS_TERMCAP_me=$'\E[0m'           # end mode 
export LESS_TERMCAP_se=$'\E[0m'           # end standout-mode 
export LESS_TERMCAP_so=$'\E[38;5;246m'    # begin standout-mode - info box 
export LESS_TERMCAP_ue=$'\E[0m'           # end underline 
export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
3
ответ дан 25 May 2018 в 22:02
  • 1
    Почему man-страницы в виртуальном терминале имеют минимальный цвет (синий для жирного шрифта), а в графическом терминале - черный и белый? – enzotib 18 April 2011 в 12:01

Должен ли он находиться в терминале?

Кроме того, вы можете использовать: System-> Help-> System Documentation и в левой части окна, которое появляется на экране «Страницы руководства» (найдено tip здесь)

Или вы можете использовать Konqueror, который показывает страницы man, подобные этому:

3
ответ дан 25 May 2018 в 22:02
  • 1
    Вау. не знал, что это можно сделать. – Stann 24 May 2011 в 20:12
  • 2
    Поддерживает ли какой-либо другой браузер это? – udiboy1209 7 April 2014 в 10:52

Ответ Adam Byrtek, кажется, ограничивает строки до 80 символов и не обновляет текст при изменении размера вашего терминала.

Вы можете исправить это, установив вместо этого MANPAGER. Вы также можете установить PAGER, как , Адам Биртек , но это более общий. MANPAGER переопределяет PAGER для команды man.

Из этого

export MANPAGER="col -b | vim -c 'set ft=man ts=8 nomod nolist nonu' -c 'nnoremap i <nop>' -"

У него есть некоторые довольно хорошие дополнительные опции, такие как установка ts (tabstop), nonu (nonumber) и unmapping i (insert). Поэтому я объединю два решения. Также были сделаны некоторые улучшения, такие как использование команды command и расширение аргументов с помощью "$@"

Как функция:

man() {
  MANPAGER="col -b | vim -R -c 'set ft=man ts=8 nomod nolist nonu' -c 'nnoremap i <nop>' -" command man "$@"
}

EDIT: прокрутите вниз до моего UPDATE, чтобы увидеть преимущества используя эту беспорядочную форму и более чистый способ написать функцию с некоторыми дополнительными сопоставлениями vim.

Но все это действительно большой беспорядок. Следующие решения требуют установки, но они являются более чистыми решениями.

Эти решения не имеют Vim: Reading from stdin..., что и в приведенном выше решении.

Я рекомендую этот [!d5 ], кроме как использовать MANPAGER вместо PAGER, так как этот вопрос касается только manpages. И я также добавлю его в мои .bash_profile или .profile, чтобы он не экспортировался при каждом вызове bash. Вам нужно будет установить most.

# In .profile or .bash_profile
MANPAGER='most'

most не имеет движения hjkl, как в vim и less, но это самый быстрый. [!d16 ]

Кроме того, vimpager довольно хорош. Мне нравится использовать его для огромных manpages, таких как man bash. Вы получаете все классные вещи от vim, такие как номера строк number, выделенный поиск hlsearch и все ваши плагины vim.

Если у вас установлен vimpager f40] также не показывает это сообщение:

The ycmd server SHUT DOWN (restart with ':YcmRestartServer'). Unexpected exit code 1. Type ':YcmToggleLogs ycmd_54959_stderr_UvwUrj.log' to check the logs.

Не знаете, почему, но приятно не видеть этого.

# In .profile or .bash_profile
export MANPAGER='vimpager'

Запуск может быть немного медленнее, чем [ f41], потому что vimpager источник вашего .vimrc, что может быть хорошо, если вы хотите использовать свои vim-плагины. Чтобы отключить поиск .vimrc:

# In .profile or .bash_profile
export MANPAGER='vimpager -u NONE'

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

# Use 'command man' instead of 'man' if you have overridden
# 'man' with a function, like how I did in the "messy" solutions above.

manmost() {
    MANPAGER='most' man "$@"
}

manvim() {
    MANPAGER='vimpager -u NONE' man "$@"
}

manvimrc() {
    MANPAGER='vimpager' man "$@"
}

Итак, теперь export MANPAGER будет устанавливать ваше значение по умолчанию MANPAGER в ваших .bash_profile или .profile, но вы можете использовать любую из этих функций для быстрого использования другого MANPAGER.

[d9 ] EDIT:

Собственно, vimpager немного отличается от фактического vim. Например, в нормальном режиме w отображается на b, а b отображается на & <C-B><SNR>1_L. Но это как другие пейджеры - меньше нет курсора.

Если вы хотите использовать фактический vim, с беспорядочным решением, я нашел это. Он подавляет Vim: Reading from stdin... с помощью взлома. Тем не менее, у вас есть сообщение YouCompleteMe. Возможно, вы можете установить еще одну команду -c, чтобы отключить YouCompleteMe. Но я просто проигнорирую это сообщение.

manrealvim() {
  MANPAGER='bash -c "vim -MRn -c \"set ft=man nomod nolist nospell nonu\" -c \"nm q :qa!<CR>\" -c \"nm <end> G\" -c \"nm <home> gg\"</dev/tty <(col -b)"' man "$@"
}

В новом этом вы можете избежать этого взлома с помощью --not-a-term:

Я очистил функция с символами новой строки, потому что это версия, которую я использую.

manvim() {
  MANPAGER='col -b | '\
'vim -MR -c "set ft=man ts=8 nomod nolist nospell nonu" '\
'-c "set colorcolumn= hlsearch incsearch" '\
'-c "nun <buffer> q" '\
'-c "nn q :qa!<CR>" '\
'-c "nn <end> G" '\
'-c "nn <home> gg" '\
'- --not-a-term' man "$@"
}

Или вы можете просто использовать neovim> v0.2.2:

# not sure why but the -M flag breaks it but it's not required
# Seems like nvim already sets -M when ft=man
mannvim() {
  MANPAGER='col -b | '\
'nvim -R -c "set ft=man ts=8 nomod nolist nospell nonu" '\
'-c "nun <buffer> q" '\
'-c "nn q :qa!<CR>" '\
'-c "nn <end> G" '\
'-c "nn <home> gg" '\
'-' man "$@"
}

Возможно, вам захочется посмотреть через опционы vim, переданные для настройки. Я просмотрел их из всех тех сообщений, которые я перечислил, и выбрал те, которые мне нравились. Или вы можете просто скопировать меня.

Вы также можете проанализировать vim --version, чтобы определить, следует ли использовать хак или --not-a-term.

MY CURRENT METHOD

Если вы хотите установить этот метод vim как свой по умолчанию MANPAGER, выполните следующее:

Добавьте эти исполняемые сценарии в свой путь: Есть два сценария, потому что первый для общего подкачки (замена для меньшего), а второй для manpaging (имеет подсветку синтаксиса manpage.
# Put this in ~/bin/vimrealpager
# I call it vimrealpager to avoid name clashes with vimpager mentioned above
# Make sure ~/bin/ is in your path

# ***SCRIPT START***

#!/usr/bin/env sh

col -b |
vim -MR -c 'set nomod nolist nospell nonu' \
-c 'set colorcolumn= hlsearch incsearch' \
-c 'nn q :qa!<CR>' \
-c 'nn <end> G' \
-c 'nn <home> gg' \
"$@" \
--not-a-term \
-
[ f12] В вашем ~ / .profile:
export MANPAGER='vimrealmanpager'

Вы также можете сделать export -f в функциях, которые я показал ранее, но он работает в bash, но не в оболочке POSIX, так что вам придется его поместить в .bash_profile вместо .profile.

Аналогичную вещь можно сделать для nvim, но я не собираюсь добавлять ее сюда, если не запрошено.

3
ответ дан 25 May 2018 в 22:02

Должен ли он находиться в терминале?

Кроме того, вы можете использовать: System-> Help-> System Documentation и в левой части окна, которое появляется на экране «Страницы руководства» (найдено tip здесь)

Или вы можете использовать Konqueror, который показывает страницы man, подобные этому:

3
ответ дан 25 July 2018 в 22:12
  • 1
    Вау. не знал, что это можно сделать. – Stann 24 May 2011 в 20:12
  • 2
    Поддерживает ли какой-либо другой браузер это? – udiboy1209 7 April 2014 в 10:52

добавить export PAGER=most в .bashrc

5
ответ дан 25 July 2018 в 22:12

Ответ Adam Byrtek, кажется, ограничивает строки до 80 символов и не обновляет текст при изменении размера вашего терминала.

Вы можете исправить это, установив вместо этого MANPAGER. Вы также можете установить PAGER, как , Адам Биртек , но это более общий. MANPAGER переопределяет PAGER для команды man.

Из этого

export MANPAGER="col -b | vim -c 'set ft=man ts=8 nomod nolist nonu' -c 'nnoremap i <nop>' -"

У него есть некоторые довольно хорошие дополнительные опции, такие как установка ts (tabstop), nonu (nonumber) и unmapping i (insert). Поэтому я объединю два решения. Также были сделаны некоторые улучшения, такие как использование команды command и расширение аргументов с помощью "$@"

Как функция:

man() { MANPAGER="col -b | vim -R -c 'set ft=man ts=8 nomod nolist nonu' -c 'nnoremap i <nop>' -" command man "$@" }

EDIT: прокрутите вниз до моего UPDATE, чтобы увидеть преимущества используя эту беспорядочную форму и более чистый способ написать функцию с некоторыми дополнительными сопоставлениями vim.

Но все это действительно большой беспорядок. Следующие решения требуют установки, но они являются более чистыми решениями.

Эти решения не имеют Vim: Reading from stdin..., что и в приведенном выше решении.

Я рекомендую этот , кроме как использовать MANPAGER вместо PAGER, так как этот вопрос касается только manpages. И я также добавлю его в мои .bash_profile или .profile, чтобы он не экспортировался при каждом вызове bash. Вам нужно будет установить most.

# In .profile or .bash_profile MANPAGER='most'

most не имеет движения hjkl, как в vim и less, но это самый быстрый.

Кроме того, vimpager довольно хорош. Мне нравится использовать его для огромных manpages, таких как man bash. Вы получаете все классные вещи от vim, такие как номера строк number, выделенный поиск hlsearch и все ваши плагины vim.

Если у вас установлен vimpager f40] также не показывает это сообщение:

The ycmd server SHUT DOWN (restart with ':YcmRestartServer'). Unexpected exit code 1. Type ':YcmToggleLogs ycmd_54959_stderr_UvwUrj.log' to check the logs.

Не знаете, почему, но приятно не видеть этого.

# In .profile or .bash_profile export MANPAGER='vimpager'

Запуск может быть немного медленнее, чем most, потому что vimpager источник вашего .vimrc, что может быть хорошо, если вы хотите использовать свои vim-плагины. Чтобы отключить поиск .vimrc:

# In .profile or .bash_profile export MANPAGER='vimpager -u NONE'

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

# Use 'command man' instead of 'man' if you have overridden # 'man' with a function, like how I did in the "messy" solutions above. manmost() { MANPAGER='most' man "$@" } manvim() { MANPAGER='vimpager -u NONE' man "$@" } manvimrc() { MANPAGER='vimpager' man "$@" }

Итак, теперь export MANPAGER будет устанавливать ваше значение по умолчанию MANPAGER в ваших .bash_profile или .profile, но вы можете использовать любую из этих функций для быстрого использования другого MANPAGER.

EDIT:

Собственно, vimpager немного отличается от фактического vim. Например, в нормальном режиме w отображается на b, а b отображается на & <C-B><SNR>1_L. Но это как другие пейджеры - меньше нет курсора.

Если вы хотите использовать фактический vim, с беспорядочным решением, я нашел это. Он подавляет Vim: Reading from stdin... с помощью взлома. Тем не менее, у вас есть сообщение YouCompleteMe. Возможно, вы можете установить еще одну команду -c, чтобы отключить YouCompleteMe. Но я просто проигнорирую это сообщение.

manrealvim() { MANPAGER='bash -c "vim -MRn -c \"set ft=man nomod nolist nospell nonu\" -c \"nm q :qa!<CR>\" -c \"nm <end> G\" -c \"nm <home> gg\"</dev/tty <(col -b)"' man "$@" }

В новом этом вы можете избежать этого взлома с помощью --not-a-term:

Я очистил функция с символами новой строки, потому что это версия, которую я использую.

manvim() { MANPAGER='col -b | '\ 'vim -MR -c "set ft=man ts=8 nomod nolist nospell nonu" '\ '-c "set colorcolumn= hlsearch incsearch" '\ '-c "nun <buffer> q" '\ '-c "nn q :qa!<CR>" '\ '-c "nn <end> G" '\ '-c "nn <home> gg" '\ '- --not-a-term' man "$@" }

Или вы можете просто использовать neovim> v0.2.2:

# not sure why but the -M flag breaks it but it's not required # Seems like nvim already sets -M when ft=man mannvim() { MANPAGER='col -b | '\ 'nvim -R -c "set ft=man ts=8 nomod nolist nospell nonu" '\ '-c "nun <buffer> q" '\ '-c "nn q :qa!<CR>" '\ '-c "nn <end> G" '\ '-c "nn <home> gg" '\ '-' man "$@" }

Возможно, вам захочется посмотреть через опционы vim, переданные для настройки. Я просмотрел их из всех тех сообщений, которые я перечислил, и выбрал те, которые мне нравились. Или вы можете просто скопировать меня.

Вы также можете проанализировать vim --version, чтобы определить, следует ли использовать хак или --not-a-term.

MY CURRENT METHOD

Если вы хотите установить этот метод vim как свой по умолчанию MANPAGER, выполните следующее:

Добавьте эти исполняемые сценарии в свой путь: Есть два сценария, потому что первый для общего подкачки (замена для меньшего), а второй для manpaging (имеет подсветку синтаксиса manpage. # Put this in ~/bin/vimrealpager # I call it vimrealpager to avoid name clashes with vimpager mentioned above # Make sure ~/bin/ is in your path # ***SCRIPT START*** #!/usr/bin/env sh col -b | vim -MR -c 'set nomod nolist nospell nonu' \ -c 'set colorcolumn= hlsearch incsearch' \ -c 'nn q :qa!<CR>' \ -c 'nn <end> G' \ -c 'nn <home> gg' \ "$@" \ --not-a-term \ - # Put this in ~/bin/vimrealmanpager # ***SCRIPT START*** #!/usr/bin/env sh vimrealpager -c 'set ft=man' \ -c 'nun <buffer> q' В вашем ~ / .profile: export MANPAGER='vimrealmanpager'

Вы также можете сделать export -f в функциях, которые я показал ранее, но он работает в bash, но не в оболочке POSIX, так что вам придется его поместить в .bash_profile вместо .profile.

Аналогичную вещь можно сделать для nvim, но я не собираюсь добавлять ее сюда, если не запрошено.

3
ответ дан 25 July 2018 в 22:12
[D0] ах. добавление этого в ~ / .bashrc делает трюк. Однако это не идеально. но hey:

# Less Colors for Man Pages export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking export LESS_TERMCAP_md=$'\E[01;38;5;74m' # begin bold export LESS_TERMCAP_me=$'\E[0m' # end mode export LESS_TERMCAP_se=$'\E[0m' # end standout-mode export LESS_TERMCAP_so=$'\E[38;5;246m' # begin standout-mode - info box export LESS_TERMCAP_ue=$'\E[0m' # end underline export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
3
ответ дан 25 July 2018 в 22:12
  • 1
    Почему man-страницы в виртуальном терминале имеют минимальный цвет (синий для жирного шрифта), а в графическом терминале - черный и белый? – enzotib 18 April 2011 в 12:01

Должен ли он находиться в терминале?

Кроме того, вы можете использовать: System-> Help-> System Documentation и в левой части окна, которое появляется на экране «Страницы руководства» (найдено tip здесь)

Или вы можете использовать Konqueror, который показывает страницы man, подобные этому:

3
ответ дан 26 July 2018 в 19:36
  • 1
    Вау. не знал, что это можно сделать. – Stann 24 May 2011 в 20:12
  • 2
    Поддерживает ли какой-либо другой браузер это? – udiboy1209 7 April 2014 в 10:52

добавить export PAGER=most в .bashrc

5
ответ дан 26 July 2018 в 19:36

Ответ Adam Byrtek, кажется, ограничивает строки до 80 символов и не обновляет текст при изменении размера вашего терминала.

Вы можете исправить это, установив вместо этого MANPAGER. Вы также можете установить PAGER, как , Адам Биртек , но это более общий. MANPAGER переопределяет PAGER для команды man.

Из этого

export MANPAGER="col -b | vim -c 'set ft=man ts=8 nomod nolist nonu' -c 'nnoremap i <nop>' -"

У него есть некоторые довольно хорошие дополнительные опции, такие как установка ts (tabstop), nonu (nonumber) и unmapping i (insert). Поэтому я объединю два решения. Также были сделаны некоторые улучшения, такие как использование команды command и расширение аргументов с помощью "$@"

Как функция:

man() { MANPAGER="col -b | vim -R -c 'set ft=man ts=8 nomod nolist nonu' -c 'nnoremap i <nop>' -" command man "$@" }

EDIT: прокрутите вниз до моего UPDATE, чтобы увидеть преимущества используя эту беспорядочную форму и более чистый способ написать функцию с некоторыми дополнительными сопоставлениями vim.

Но все это действительно большой беспорядок. Следующие решения требуют установки, но они являются более чистыми решениями.

Эти решения не имеют Vim: Reading from stdin..., что и в приведенном выше решении.

Я рекомендую этот , кроме как использовать MANPAGER вместо PAGER, так как этот вопрос касается только manpages. И я также добавлю его в мои .bash_profile или .profile, чтобы он не экспортировался при каждом вызове bash. Вам нужно будет установить most.

# In .profile or .bash_profile MANPAGER='most'

most не имеет движения hjkl, как в vim и less, но это самый быстрый.

Кроме того, vimpager довольно хорош. Мне нравится использовать его для огромных manpages, таких как man bash. Вы получаете все классные вещи от vim, такие как номера строк number, выделенный поиск hlsearch и все ваши плагины vim.

Если у вас установлен vimpager f40] также не показывает это сообщение:

The ycmd server SHUT DOWN (restart with ':YcmRestartServer'). Unexpected exit code 1. Type ':YcmToggleLogs ycmd_54959_stderr_UvwUrj.log' to check the logs.

Не знаете, почему, но приятно не видеть этого.

# In .profile or .bash_profile export MANPAGER='vimpager'

Запуск может быть немного медленнее, чем most, потому что vimpager источник вашего .vimrc, что может быть хорошо, если вы хотите использовать свои vim-плагины. Чтобы отключить поиск .vimrc:

# In .profile or .bash_profile export MANPAGER='vimpager -u NONE'

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

# Use 'command man' instead of 'man' if you have overridden # 'man' with a function, like how I did in the "messy" solutions above. manmost() { MANPAGER='most' man "$@" } manvim() { MANPAGER='vimpager -u NONE' man "$@" } manvimrc() { MANPAGER='vimpager' man "$@" }

Итак, теперь export MANPAGER будет устанавливать ваше значение по умолчанию MANPAGER в ваших .bash_profile или .profile, но вы можете использовать любую из этих функций для быстрого использования другого MANPAGER.

EDIT:

Собственно, vimpager немного отличается от фактического vim. Например, в нормальном режиме w отображается на b, а b отображается на & <C-B><SNR>1_L. Но это как другие пейджеры - меньше нет курсора.

Если вы хотите использовать фактический vim, с беспорядочным решением, я нашел это. Он подавляет Vim: Reading from stdin... с помощью взлома. Тем не менее, у вас есть сообщение YouCompleteMe. Возможно, вы можете установить еще одну команду -c, чтобы отключить YouCompleteMe. Но я просто проигнорирую это сообщение.

manrealvim() { MANPAGER='bash -c "vim -MRn -c \"set ft=man nomod nolist nospell nonu\" -c \"nm q :qa!<CR>\" -c \"nm <end> G\" -c \"nm <home> gg\"</dev/tty <(col -b)"' man "$@" }

В новом этом вы можете избежать этого взлома с помощью --not-a-term:

Я очистил функция с символами новой строки, потому что это версия, которую я использую.

manvim() { MANPAGER='col -b | '\ 'vim -MR -c "set ft=man ts=8 nomod nolist nospell nonu" '\ '-c "set colorcolumn= hlsearch incsearch" '\ '-c "nun <buffer> q" '\ '-c "nn q :qa!<CR>" '\ '-c "nn <end> G" '\ '-c "nn <home> gg" '\ '- --not-a-term' man "$@" }

Или вы можете просто использовать neovim> v0.2.2:

# not sure why but the -M flag breaks it but it's not required # Seems like nvim already sets -M when ft=man mannvim() { MANPAGER='col -b | '\ 'nvim -R -c "set ft=man ts=8 nomod nolist nospell nonu" '\ '-c "nun <buffer> q" '\ '-c "nn q :qa!<CR>" '\ '-c "nn <end> G" '\ '-c "nn <home> gg" '\ '-' man "$@" }

Возможно, вам захочется посмотреть через опционы vim, переданные для настройки. Я просмотрел их из всех тех сообщений, которые я перечислил, и выбрал те, которые мне нравились. Или вы можете просто скопировать меня.

Вы также можете проанализировать vim --version, чтобы определить, следует ли использовать хак или --not-a-term.

MY CURRENT METHOD

Если вы хотите установить этот метод vim как свой по умолчанию MANPAGER, выполните следующее:

Добавьте эти исполняемые сценарии в свой путь: Есть два сценария, потому что первый для общего подкачки (замена для меньшего), а второй для manpaging (имеет подсветку синтаксиса manpage. # Put this in ~/bin/vimrealpager # I call it vimrealpager to avoid name clashes with vimpager mentioned above # Make sure ~/bin/ is in your path # ***SCRIPT START*** #!/usr/bin/env sh col -b | vim -MR -c 'set nomod nolist nospell nonu' \ -c 'set colorcolumn= hlsearch incsearch' \ -c 'nn q :qa!<CR>' \ -c 'nn <end> G' \ -c 'nn <home> gg' \ "$@" \ --not-a-term \ - # Put this in ~/bin/vimrealmanpager # ***SCRIPT START*** #!/usr/bin/env sh vimrealpager -c 'set ft=man' \ -c 'nun <buffer> q' В вашем ~ / .profile: export MANPAGER='vimrealmanpager'

Вы также можете сделать export -f в функциях, которые я показал ранее, но он работает в bash, но не в оболочке POSIX, так что вам придется его поместить в .bash_profile вместо .profile.

Аналогичную вещь можно сделать для nvim, но я не собираюсь добавлять ее сюда, если не запрошено.

3
ответ дан 26 July 2018 в 19:36
[D0] ах. добавление этого в ~ / .bashrc делает трюк. Однако это не идеально. но hey:

# Less Colors for Man Pages export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking export LESS_TERMCAP_md=$'\E[01;38;5;74m' # begin bold export LESS_TERMCAP_me=$'\E[0m' # end mode export LESS_TERMCAP_se=$'\E[0m' # end standout-mode export LESS_TERMCAP_so=$'\E[38;5;246m' # begin standout-mode - info box export LESS_TERMCAP_ue=$'\E[0m' # end underline export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
3
ответ дан 26 July 2018 в 19:36
  • 1
    Почему man-страницы в виртуальном терминале имеют минимальный цвет (синий для жирного шрифта), а в графическом терминале - черный и белый? – enzotib 18 April 2011 в 12:01

Должен ли он находиться в терминале?

Кроме того, вы можете использовать: System-> Help-> System Documentation и в левой части окна, которое появляется на экране «Страницы руководства» (найдено tip здесь)

Или вы можете использовать Konqueror, который показывает страницы man, подобные этому:

3
ответ дан 31 July 2018 в 12:09
  • 1
    Вау. не знал, что это можно сделать. – Stann 24 May 2011 в 20:12
  • 2
    Поддерживает ли какой-либо другой браузер это? – udiboy1209 7 April 2014 в 10:52

добавить export PAGER=most в .bashrc

5
ответ дан 31 July 2018 в 12:09

Ответ Adam Byrtek, кажется, ограничивает строки до 80 символов и не обновляет текст при изменении размера вашего терминала.

Вы можете исправить это, установив вместо этого MANPAGER. Вы также можете установить PAGER, как , Адам Биртек , но это более общий. MANPAGER переопределяет PAGER для команды man.

Из этого

export MANPAGER="col -b | vim -c 'set ft=man ts=8 nomod nolist nonu' -c 'nnoremap i <nop>' -"

У него есть некоторые довольно хорошие дополнительные опции, такие как установка ts (tabstop), nonu (nonumber) и unmapping i (insert). Поэтому я объединю два решения. Также были сделаны некоторые улучшения, такие как использование команды command и расширение аргументов с помощью "$@"

Как функция:

man() { MANPAGER="col -b | vim -R -c 'set ft=man ts=8 nomod nolist nonu' -c 'nnoremap i <nop>' -" command man "$@" }

EDIT: прокрутите вниз до моего UPDATE, чтобы увидеть преимущества используя эту беспорядочную форму и более чистый способ написать функцию с некоторыми дополнительными сопоставлениями vim.

Но все это действительно большой беспорядок. Следующие решения требуют установки, но они являются более чистыми решениями.

Эти решения не имеют Vim: Reading from stdin..., что и в приведенном выше решении.

Я рекомендую этот , кроме как использовать MANPAGER вместо PAGER, так как этот вопрос касается только manpages. И я также добавлю его в мои .bash_profile или .profile, чтобы он не экспортировался при каждом вызове bash. Вам нужно будет установить most.

# In .profile or .bash_profile MANPAGER='most'

most не имеет движения hjkl, как в vim и less, но это самый быстрый.

Кроме того, vimpager довольно хорош. Мне нравится использовать его для огромных manpages, таких как man bash. Вы получаете все классные вещи от vim, такие как номера строк number, выделенный поиск hlsearch и все ваши плагины vim.

Если у вас установлен vimpager f40] также не показывает это сообщение:

The ycmd server SHUT DOWN (restart with ':YcmRestartServer'). Unexpected exit code 1. Type ':YcmToggleLogs ycmd_54959_stderr_UvwUrj.log' to check the logs.

Не знаете, почему, но приятно не видеть этого.

# In .profile or .bash_profile export MANPAGER='vimpager'

Запуск может быть немного медленнее, чем most, потому что vimpager источник вашего .vimrc, что может быть хорошо, если вы хотите использовать свои vim-плагины. Чтобы отключить поиск .vimrc:

# In .profile or .bash_profile export MANPAGER='vimpager -u NONE'

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

# Use 'command man' instead of 'man' if you have overridden # 'man' with a function, like how I did in the "messy" solutions above. manmost() { MANPAGER='most' man "$@" } manvim() { MANPAGER='vimpager -u NONE' man "$@" } manvimrc() { MANPAGER='vimpager' man "$@" }

Итак, теперь export MANPAGER будет устанавливать ваше значение по умолчанию MANPAGER в ваших .bash_profile или .profile, но вы можете использовать любую из этих функций для быстрого использования другого MANPAGER.

EDIT:

Собственно, vimpager немного отличается от фактического vim. Например, в нормальном режиме w отображается на b, а b отображается на & <C-B><SNR>1_L. Но это как другие пейджеры - меньше нет курсора.

Если вы хотите использовать фактический vim, с беспорядочным решением, я нашел это. Он подавляет Vim: Reading from stdin... с помощью взлома. Тем не менее, у вас есть сообщение YouCompleteMe. Возможно, вы можете установить еще одну команду -c, чтобы отключить YouCompleteMe. Но я просто проигнорирую это сообщение.

manrealvim() { MANPAGER='bash -c "vim -MRn -c \"set ft=man nomod nolist nospell nonu\" -c \"nm q :qa!<CR>\" -c \"nm <end> G\" -c \"nm <home> gg\"</dev/tty <(col -b)"' man "$@" }

В новом этом вы можете избежать этого взлома с помощью --not-a-term:

Я очистил функция с символами новой строки, потому что это версия, которую я использую.

manvim() { MANPAGER='col -b | '\ 'vim -MR -c "set ft=man ts=8 nomod nolist nospell nonu" '\ '-c "set colorcolumn= hlsearch incsearch" '\ '-c "nun <buffer> q" '\ '-c "nn q :qa!<CR>" '\ '-c "nn <end> G" '\ '-c "nn <home> gg" '\ '- --not-a-term' man "$@" }

Или вы можете просто использовать neovim> v0.2.2:

# not sure why but the -M flag breaks it but it's not required # Seems like nvim already sets -M when ft=man mannvim() { MANPAGER='col -b | '\ 'nvim -R -c "set ft=man ts=8 nomod nolist nospell nonu" '\ '-c "nun <buffer> q" '\ '-c "nn q :qa!<CR>" '\ '-c "nn <end> G" '\ '-c "nn <home> gg" '\ '-' man "$@" }

Возможно, вам захочется посмотреть через опционы vim, переданные для настройки. Я просмотрел их из всех тех сообщений, которые я перечислил, и выбрал те, которые мне нравились. Или вы можете просто скопировать меня.

Вы также можете проанализировать vim --version, чтобы определить, следует ли использовать хак или --not-a-term.

MY CURRENT METHOD

Если вы хотите установить этот метод vim как свой по умолчанию MANPAGER, выполните следующее:

Добавьте эти исполняемые сценарии в свой путь: Есть два сценария, потому что первый для общего подкачки (замена для меньшего), а второй для manpaging (имеет подсветку синтаксиса manpage. # Put this in ~/bin/vimrealpager # I call it vimrealpager to avoid name clashes with vimpager mentioned above # Make sure ~/bin/ is in your path # ***SCRIPT START*** #!/usr/bin/env sh col -b | vim -MR -c 'set nomod nolist nospell nonu' \ -c 'set colorcolumn= hlsearch incsearch' \ -c 'nn q :qa!<CR>' \ -c 'nn <end> G' \ -c 'nn <home> gg' \ "$@" \ --not-a-term \ - # Put this in ~/bin/vimrealmanpager # ***SCRIPT START*** #!/usr/bin/env sh vimrealpager -c 'set ft=man' \ -c 'nun <buffer> q' В вашем ~ / .profile: export MANPAGER='vimrealmanpager'

Вы также можете сделать export -f в функциях, которые я показал ранее, но он работает в bash, но не в оболочке POSIX, так что вам придется его поместить в .bash_profile вместо .profile.

Аналогичную вещь можно сделать для nvim, но я не собираюсь добавлять ее сюда, если не запрошено.

3
ответ дан 31 July 2018 в 12:09
[D0] ах. добавление этого в ~ / .bashrc делает трюк. Однако это не идеально. но hey:

# Less Colors for Man Pages export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking export LESS_TERMCAP_md=$'\E[01;38;5;74m' # begin bold export LESS_TERMCAP_me=$'\E[0m' # end mode export LESS_TERMCAP_se=$'\E[0m' # end standout-mode export LESS_TERMCAP_so=$'\E[38;5;246m' # begin standout-mode - info box export LESS_TERMCAP_ue=$'\E[0m' # end underline export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
3
ответ дан 31 July 2018 в 12:09
  • 1
    Почему man-страницы в виртуальном терминале имеют минимальный цвет (синий для жирного шрифта), а в графическом терминале - черный и белый? – enzotib 18 April 2011 в 12:01

Должен ли он находиться в терминале?

Кроме того, вы можете использовать: System-> Help-> System Documentation и в левой части окна, которое появляется на экране «Страницы руководства» (найдено tip здесь)

Или вы можете использовать Konqueror, который показывает страницы man, подобные этому:

3
ответ дан 2 August 2018 в 03:40
  • 1
    Вау. не знал, что это можно сделать. – Stann 24 May 2011 в 20:12
  • 2
    Поддерживает ли какой-либо другой браузер это? – udiboy1209 7 April 2014 в 10:52

добавить export PAGER=most в .bashrc

5
ответ дан 2 August 2018 в 03:40

Ответ Adam Byrtek, кажется, ограничивает строки до 80 символов и не обновляет текст при изменении размера вашего терминала.

Вы можете исправить это, установив вместо этого MANPAGER. Вы также можете установить PAGER, как , Адам Биртек , но это более общий. MANPAGER переопределяет PAGER для команды man.

Из этого

export MANPAGER="col -b | vim -c 'set ft=man ts=8 nomod nolist nonu' -c 'nnoremap i <nop>' -"

У него есть некоторые довольно хорошие дополнительные опции, такие как установка ts (tabstop), nonu (nonumber) и unmapping i (insert). Поэтому я объединю два решения. Также были сделаны некоторые улучшения, такие как использование команды command и расширение аргументов с помощью "$@"

Как функция:

man() { MANPAGER="col -b | vim -R -c 'set ft=man ts=8 nomod nolist nonu' -c 'nnoremap i <nop>' -" command man "$@" }

EDIT: прокрутите вниз до моего UPDATE, чтобы увидеть преимущества используя эту беспорядочную форму и более чистый способ написать функцию с некоторыми дополнительными сопоставлениями vim.

Но все это действительно большой беспорядок. Следующие решения требуют установки, но они являются более чистыми решениями.

Эти решения не имеют Vim: Reading from stdin..., что и в приведенном выше решении.

Я рекомендую этот , кроме как использовать MANPAGER вместо PAGER, так как этот вопрос касается только manpages. И я также добавлю его в мои .bash_profile или .profile, чтобы он не экспортировался при каждом вызове bash. Вам нужно будет установить most.

# In .profile or .bash_profile MANPAGER='most'

most не имеет движения hjkl, как в vim и less, но это самый быстрый.

Кроме того, vimpager довольно хорош. Мне нравится использовать его для огромных manpages, таких как man bash. Вы получаете все классные вещи от vim, такие как номера строк number, выделенный поиск hlsearch и все ваши плагины vim.

Если у вас установлен vimpager f40] также не показывает это сообщение:

The ycmd server SHUT DOWN (restart with ':YcmRestartServer'). Unexpected exit code 1. Type ':YcmToggleLogs ycmd_54959_stderr_UvwUrj.log' to check the logs.

Не знаете, почему, но приятно не видеть этого.

# In .profile or .bash_profile export MANPAGER='vimpager'

Запуск может быть немного медленнее, чем most, потому что vimpager источник вашего .vimrc, что может быть хорошо, если вы хотите использовать свои vim-плагины. Чтобы отключить поиск .vimrc:

# In .profile or .bash_profile export MANPAGER='vimpager -u NONE'

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

# Use 'command man' instead of 'man' if you have overridden # 'man' with a function, like how I did in the "messy" solutions above. manmost() { MANPAGER='most' man "$@" } manvim() { MANPAGER='vimpager -u NONE' man "$@" } manvimrc() { MANPAGER='vimpager' man "$@" }

Итак, теперь export MANPAGER будет устанавливать ваше значение по умолчанию MANPAGER в ваших .bash_profile или .profile, но вы можете использовать любую из этих функций для быстрого использования другого MANPAGER.

EDIT:

Собственно, vimpager немного отличается от фактического vim. Например, в нормальном режиме w отображается на b, а b отображается на & <C-B><SNR>1_L. Но это как другие пейджеры - меньше нет курсора.

Если вы хотите использовать фактический vim, с беспорядочным решением, я нашел это. Он подавляет Vim: Reading from stdin... с помощью взлома. Тем не менее, у вас есть сообщение YouCompleteMe. Возможно, вы можете установить еще одну команду -c, чтобы отключить YouCompleteMe. Но я просто проигнорирую это сообщение.

manrealvim() { MANPAGER='bash -c "vim -MRn -c \"set ft=man nomod nolist nospell nonu\" -c \"nm q :qa!<CR>\" -c \"nm <end> G\" -c \"nm <home> gg\"</dev/tty <(col -b)"' man "$@" }

В новом этом вы можете избежать этого взлома с помощью --not-a-term:

Я очистил функция с символами новой строки, потому что это версия, которую я использую.

manvim() { MANPAGER='col -b | '\ 'vim -MR -c "set ft=man ts=8 nomod nolist nospell nonu" '\ '-c "set colorcolumn= hlsearch incsearch" '\ '-c "nun <buffer> q" '\ '-c "nn q :qa!<CR>" '\ '-c "nn <end> G" '\ '-c "nn <home> gg" '\ '- --not-a-term' man "$@" }

Или вы можете просто использовать neovim> v0.2.2:

# not sure why but the -M flag breaks it but it's not required # Seems like nvim already sets -M when ft=man mannvim() { MANPAGER='col -b | '\ 'nvim -R -c "set ft=man ts=8 nomod nolist nospell nonu" '\ '-c "nun <buffer> q" '\ '-c "nn q :qa!<CR>" '\ '-c "nn <end> G" '\ '-c "nn <home> gg" '\ '-' man "$@" }

Возможно, вам захочется посмотреть через опционы vim, переданные для настройки. Я просмотрел их из всех тех сообщений, которые я перечислил, и выбрал те, которые мне нравились. Или вы можете просто скопировать меня.

Вы также можете проанализировать vim --version, чтобы определить, следует ли использовать хак или --not-a-term.

MY CURRENT METHOD

Если вы хотите установить этот метод vim как свой по умолчанию MANPAGER, выполните следующее:

Добавьте эти исполняемые сценарии в свой путь: Есть два сценария, потому что первый для общего подкачки (замена для меньшего), а второй для manpaging (имеет подсветку синтаксиса manpage. # Put this in ~/bin/vimrealpager # I call it vimrealpager to avoid name clashes with vimpager mentioned above # Make sure ~/bin/ is in your path # ***SCRIPT START*** #!/usr/bin/env sh col -b | vim -MR -c 'set nomod nolist nospell nonu' \ -c 'set colorcolumn= hlsearch incsearch' \ -c 'nn q :qa!<CR>' \ -c 'nn <end> G' \ -c 'nn <home> gg' \ "$@" \ --not-a-term \ - # Put this in ~/bin/vimrealmanpager # ***SCRIPT START*** #!/usr/bin/env sh vimrealpager -c 'set ft=man' \ -c 'nun <buffer> q' В вашем ~ / .profile: export MANPAGER='vimrealmanpager'

Вы также можете сделать export -f в функциях, которые я показал ранее, но он работает в bash, но не в оболочке POSIX, так что вам придется его поместить в .bash_profile вместо .profile.

Аналогичную вещь можно сделать для nvim, но я не собираюсь добавлять ее сюда, если не запрошено.

3
ответ дан 2 August 2018 в 03:40
[D0] ах. добавление этого в ~ / .bashrc делает трюк. Однако это не идеально. но hey:

# Less Colors for Man Pages export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking export LESS_TERMCAP_md=$'\E[01;38;5;74m' # begin bold export LESS_TERMCAP_me=$'\E[0m' # end mode export LESS_TERMCAP_se=$'\E[0m' # end standout-mode export LESS_TERMCAP_so=$'\E[38;5;246m' # begin standout-mode - info box export LESS_TERMCAP_ue=$'\E[0m' # end underline export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
3
ответ дан 2 August 2018 в 03:40
  • 1
    Почему man-страницы в виртуальном терминале имеют минимальный цвет (синий для жирного шрифта), а в графическом терминале - черный и белый? – enzotib 18 April 2011 в 12:01

Другие вопросы по тегам:

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