PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Vim als Manpager und Ersatz für less



citizen428
06.09.05, 16:28
Wäre es nicht toll wenn man seine Manpages mit Vim lesen könnte, inklusive Syntax Highlighting und allem was sonst noch so dazu gehört? Kein Problem, das Ganze sieht dann in etwa so aus:

http://gallery.symbion.at/albums/Misc/man_vith_vim.thumb.png

Dazu muss eigentlich nur die Umgebungsvariable MANPAGER mit dem richtigen Wert belegt werden, in der Bash z.B. mittels

export MANPAGER="col -b | view -c 'set ft=man nomod nolist' -"

Anschliessend sollte man noch das in Vim Tip #167 (http://www.vim.org/tips/tip.php?tip_id=167) zu findende Vimskript in die Datei ~/.vim/after/syntax/man.vim kopieren, schon dem vergnüglichen Manpage lesen inklusive Highlighting nichts mehr im Wege! :)

Und für all jene die öfters mal Quellcode mittels less ausgeben und dabei vielleicht auch ganz gern in den Genuss von Farben kommen würden, hab ich auch noch einen Tipp parat:



# ln -s $VIMRUNTIME/macros/less.sh /usr/local/bin/less
# chmod +x /usr/local/bin/less


$VIMRUNTIME ist in meinem Fall /usr/share/vim/vim63/, sollte bei anderen Distributionen aber nicht anders sein.

Anschliessend kopiert man folgendes Vimskript in die Datei ~/.vim/scripts.vim (siehe Vim Tip #121 (http://www.vim.org/tips/tip.php?tip_id=121)):



if did_filetype() " filetype already set..
elseif getline(1) =~ '^(.+)(d{1}).+1(d{1})$'
set filetype=man
endif


Da ich meine .bashrc auf mehreren Rechner verwende, hab ich noch eine kleine Abfrage eingebaut welche die Variablen PAGER und LESS nur setzt wenn das entsprechende Skript auch tatsächlich vorhanden ist:



if [[ -x /usr/local/bin/vless && -x /usr/bin/col ]] ; then
export PAGER="col -b | vless"
alias less="vless"
alias more="vless"
else
export PAGER="less"
export LESS="-e"
alias more="less"
fi



Es gäbe auch noch eine andere Möglichkeit Vim als Pager für Manualpages einzusetzen, diese hab ich aber erst später entdeckt und sie gefällt mir auch nicht sonderlich gut:

http://www.gentoo.org/news/en/gwn/20050725-newsletter.xml#doc_chap5