Есть ли способ «раскрасить» manpages output? Я имею в виду - вывод, например:
man command_name
Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:
man() {
/usr/bin/man $* | \
col -b | \
vim -R -c 'set ft=man nomod nolist' -
}
Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:
man() {
/usr/bin/man $* | \
col -b | \
vim -R -c 'set ft=man nomod nolist' -
}
Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:
man() {
/usr/bin/man $* | \
col -b | \
vim -R -c 'set ft=man nomod nolist' -
}
Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:
man() {
/usr/bin/man $* | \
col -b | \
vim -R -c 'set ft=man nomod nolist' -
}
Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:
man() {
/usr/bin/man $* | \
col -b | \
vim -R -c 'set ft=man nomod nolist' -
}
Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:
man() {
/usr/bin/man $* | \
col -b | \
vim -R -c 'set ft=man nomod nolist' -
}
Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:
man () {/ usr / bin / man $ * | \ col -b | \ vim -R -c 'set ft = man nomod nolist' -}
Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:
man () {/ usr / bin / man $ * | \ col -b | \ vim -R -c 'set ft = man nomod nolist' -}
Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:
man () {/ usr / bin / man $ * | \ col -b | \ vim -R -c 'set ft = man nomod nolist' -}
Я использую следующую функцию оболочки для просмотра manpages в Vim, которая обеспечивает приятный синтаксис highlighing:
man () {/ usr / bin / man $ * | \ col -b | \ vim -R -c 'set ft = man nomod nolist' -}
$ *
на "$ @"
, чтобы избежать потенциальных проблем с пробелом. В противном случае, спасибо!
– Scott Severance
21 April 2011 в 18:09
less
style: замените vim
на /usr/share/vim/vim72/macros/less.sh
.
– enzotib
25 April 2011 в 14:07
# 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
Должен ли он находиться в терминале?
Кроме того, вы можете использовать: System-> Help-> System Documentation и в левой части окна, которое появляется на экране «Страницы руководства» (найдено tip здесь)
Или вы можете использовать Konqueror, который показывает страницы man, подобные этому:
Ответ 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..., что и в приведенном выше решении.
# 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, но я не собираюсь добавлять ее сюда, если не запрошено.
Должен ли он находиться в терминале?
Кроме того, вы можете использовать: System-> Help-> System Documentation и в левой части окна, которое появляется на экране «Страницы руководства» (найдено tip здесь)
Или вы можете использовать Konqueror, который показывает страницы man, подобные этому:
Ответ 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, но я не собираюсь добавлять ее сюда, если не запрошено.
# 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
Должен ли он находиться в терминале?
Кроме того, вы можете использовать: System-> Help-> System Documentation и в левой части окна, которое появляется на экране «Страницы руководства» (найдено tip здесь)
Или вы можете использовать Konqueror, который показывает страницы man, подобные этому:
Ответ 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, но я не собираюсь добавлять ее сюда, если не запрошено.
# 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
Должен ли он находиться в терминале?
Кроме того, вы можете использовать: System-> Help-> System Documentation и в левой части окна, которое появляется на экране «Страницы руководства» (найдено tip здесь)
Или вы можете использовать Konqueror, который показывает страницы man, подобные этому:
Ответ 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, но я не собираюсь добавлять ее сюда, если не запрошено.
# 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
Должен ли он находиться в терминале?
Кроме того, вы можете использовать: System-> Help-> System Documentation и в левой части окна, которое появляется на экране «Страницы руководства» (найдено tip здесь)
Или вы можете использовать Konqueror, который показывает страницы man, подобные этому:
Ответ 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, но я не собираюсь добавлять ее сюда, если не запрошено.
# 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