Antworten:
Ich verwende die folgende Shell-Funktion, um Manpages in Vim anzuzeigen, die eine nette Syntax-Hervorhebung bietet:
man() {
/usr/bin/man $* | \
col -b | \
vim -R -c 'set ft=man nomod nolist' -
}
j
funktioniert auch in weniger gut :)
$*
, "$@"
um mögliche Probleme mit Leerzeichen zu vermeiden. Ansonsten vielen Dank!
less
Stil näher zu kommen : Ersetzen vim
durch /usr/share/vim/vim72/macros/less.sh
.
export PAGER=most
zu .bashrc hinzufügen
export PAGER="most"
(mit Anführungszeichen) und muss zuerst installiert werden apt-get install most
(vgl. Cyberciti.biz/faq/unix-linux-color-man-pages-configuration ).
Aha. Das Hinzufügen zu ~ / .bashrc macht den Trick. Es ist jedoch nicht perfekt. aber 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
Muss es im Terminal sein?
Andernfalls können Sie Folgendes verwenden: System-> Hilfe-> Systemdokumentation. Klicken Sie links im daraufhin angezeigten Fenster auf "Manuelle Seiten" (diesen Tipp finden Sie hier ).
Oder Sie können Konqueror verwenden, das die Manpages wie folgt anzeigt:
Die Antwort Adam Byrtek scheint die Zeilen auf 80 Zeichen zu beschränken und lässt den Text nicht neu fließen, wenn Sie die Größe Ihres Terminals ändern.
Sie können dies beheben, indem Sie MANPAGER
stattdessen einstellen . Sie können auch PAGER
wie daithib8 einstellen , aber das ist allgemeiner. MANPAGER
überschreibt PAGER
den man
Befehl.
aus diesem
export MANPAGER="col -b | vim -c 'set ft=man ts=8 nomod nolist nonu' -c 'nnoremap i <nop>' -"
Er hat einige ziemlich gute zusätzliche Optionen wie Einstellen ts
(Tabstop), nonu
(Nichtnummer) und Aufheben der Zuordnung i
(Einfügen). Also werde ich die beiden Lösungen zusammenführen. Außerdem wurden einige Verbesserungen vorgenommen, z. B. die Verwendung des command
Befehls und das Erweitern von Argumenten mit"$@"
Als eine Funktion:
man() {
MANPAGER="col -b | vim -R -c 'set ft=man ts=8 nomod nolist nonu' -c 'nnoremap i <nop>' -" command man "$@"
}
BEARBEITEN: Scrollen Sie nach unten zu meinem UPDATE , um die Vorteile dieser unordentlichen Form und eine sauberere Möglichkeit zum Schreiben der Funktion mit einigen zusätzlichen Vim-Zuordnungen zu sehen.
Aber all dies zu tun ist ein wirklich großes Durcheinander. Die folgenden Lösungen müssen installiert werden, sind jedoch sauberere Lösungen.
Diese Lösungen haben nicht das Vim: Reading from stdin...
, was die obige Lösung hat.
Ich empfehle daithib8 ‚s Antwort , außer Gebrauch MANPAGER
statt , PAGER
da diese Frage ist nur über manpages. Und ich würde es auch zu meinem hinzufügen .bash_profile
oder .profile
so, es wird nicht bei jedem Aufruf von exportiert bash
. Sie müssen jedoch installieren most
.
# In .profile or .bash_profile
MANPAGER='most'
most
hat keine hjkl
Bewegung wie in vim
und less
, aber es ist die schnellste.
Ist auch vimpager
ziemlich gut. Ich benutze es gerne für riesige Manpages wie man bash
. Sie erhalten alle coolen Dinge von vim wie Zeilennummern number
, hervorgehobene Suche hlsearch
und alle Ihre vim-Plugins.
Wenn Sie YouCompleteMe
installiert haben vimpager
, wird diese Meldung ebenfalls nicht angezeigt:
The ycmd server SHUT DOWN (restart with ':YcmRestartServer'). Unexpected exit code 1. Type ':YcmToggleLogs ycmd_54959_stderr_UvwUrj.log' to check the logs.
Ich weiß nicht warum, aber es ist schön, das nicht zu sehen.
# In .profile or .bash_profile
export MANPAGER='vimpager'
Startup kann etwas langsamer sein als most
da vimpager
Quellen Ihr .vimrc
, was eine gute Sache sein kann, wenn Sie Ihre vim - Plugins verwenden möchten. So deaktivieren Sie die .vimrc
Beschaffung:
# In .profile or .bash_profile
export MANPAGER='vimpager -u NONE'
Sie können auch einen hybriden Ansatz mit Funktionen durchführen:
# 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 "$@"
}
Jetzt export MANPAGER
wird Ihr Standard MANPAGER
in Ihrem .bash_profile
oder festgelegt .profile
, aber Sie können eine dieser Funktionen verwenden, um schnell eine andere zu verwenden MANPAGER
.
AKTUALISIEREN
Tatsächlich unterscheidet sich Vimpager ein wenig von Vim. Im normalen Modus w
wird beispielsweise zugeordnet b
und b
zugeordnet & <C-B><SNR>1_L
. Aber so sind andere Pager - weniger hat keinen Cursor.
Wenn Sie tatsächlich vim verwenden möchten, mit einem unordentlichen Lösung, fand ich diese . Es unterdrückt das Vim: Reading from stdin...
mit einem Hack. Hat aber immer noch die YouCompleteMe-Nachricht. Sie können wahrscheinlich einen anderen -c
Befehl festlegen, um YouCompleteMe auszuschalten. Aber ich werde diese Nachricht einfach ignorieren.
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 "$@"
}
In neueren vim-Versionen können Sie diesen Hack vermeiden mit --not-a-term
:
Ich habe die Funktion mit Zeilenumbrüchen bereinigt, da dies die Version ist, die ich verwende.
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 "$@"
}
Oder Sie können einfach neovim> v0.2.2 verwenden :
# 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 "$@"
}
Möglicherweise möchten Sie die zum Anpassen übergebenen vim-Optionen durchsehen. Ich habe sie in all den Posts durchgesehen, die ich aufgelistet habe, und die ausgewählt, die mir gefallen haben. Oder du kannst mich einfach kopieren.
Sie können auch analysieren, vim --version
um festzustellen, ob der Hack oder verwendet werden soll --not-a-term
. Das werde ich hier nicht machen.
MEINE AKTUELLE METHODE
Wenn Sie diese vim-Methode als Standard festlegen möchten, gehen Sie wie MANPAGER
folgt vor:
Fügen Sie diese ausführbaren Skripte in Ihren Pfad ein:
Es gibt zwei Skripte, da das erste für allgemeines Paging (Ersatz für weniger) und das zweite für Manpaging (Hervorhebung der Manpage-Syntax) vorgesehen ist.
# 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'
In Ihrem ~ / .profile:
export MANPAGER='vimrealmanpager'
Sie könnten auch export -f
die Funktionen ausführen, die ich zuvor gezeigt habe, aber es funktioniert in Bash, aber nicht in der POSIX-Shell, sodass Sie es in .bash_profile anstelle von .profile einfügen müssten.
Ähnliches kann getan werden, nvim
aber ich werde es hier nicht hinzufügen, es sei denn, dies wird angefordert.