" Vim filetype plugin file " Language: man " Maintainer: SungHyun Nam <goweol@gmail.com> " Last Change: 2013 Jul 17 " To make the ":Man" command available before editing a manual page, source " this script from your startup vimrc file. " If 'filetype' isn't "man", we must have been called to only define ":Man". if &filetype == "man" " Only do this when not done yet for this buffer if exists("b:did_ftplugin") finish endif let b:did_ftplugin = 1 " Ensure Vim is not recursively invoked (man-db does this) " when doing ctrl-[ on a man page reference. if exists("$MANPAGER") let $MANPAGER = "" endif " allow dot and dash in manual page name. setlocal iskeyword+=\.,- " Add mappings, unless the user didn't want this. if !exists("no_plugin_maps") && !exists("no_man_maps") if !hasmapto('<Plug>ManBS') nmap <buffer> <LocalLeader>h <Plug>ManBS endif nnoremap <buffer> <Plug>ManBS :%s/.\b//g<CR>:setl nomod<CR>'' nnoremap <buffer> <c-]> :call <SID>PreGetPage(v:count)<CR> nnoremap <buffer> <c-t> :call <SID>PopPage()<CR> endif let b:undo_ftplugin = "setlocal iskeyword<" endif if exists(":Man") != 2 com -nargs=+ Man call s:GetPage(<f-args>) nmap <Leader>K :call <SID>PreGetPage(0)<CR> endif " Define functions only once. if !exists("s:man_tag_depth") let s:man_tag_depth = 0 let s:man_sect_arg = "" let s:man_find_arg = "-w" try if !has("win32") && $OSTYPE !~ 'cygwin\|linux' && system('uname -s') =~ "SunOS" && system('uname -r') =~ "^5" let s:man_sect_arg = "-s" let s:man_find_arg = "-l" endif catch /E145:/ " Ignore the error in restricted mode endtry func <SID>PreGetPage(cnt) if a:cnt == 0 let old_isk = &iskeyword setl iskeyword+=(,) let str = expand("<cword>") let &l:iskeyword = old_isk let page = substitute(str, '(*\(\k\+\).*', '\1', '') let sect = substitute(str, '\(\k\+\)(\([^()]*\)).*', '\2', '') if match(sect, '^[0-9 ]\+$') == -1 let sect = "" endif if sect == page let sect = "" endif else let sect = a:cnt let page = expand("<cword>") endif call s:GetPage(sect, page) endfunc func <SID>GetCmdArg(sect, page) if a:sect == '' return a:page endif return s:man_sect_arg.' '.a:sect.' '.a:page endfunc func <SID>FindPage(sect, page) let where = system("/usr/bin/man ".s:man_find_arg.' '.s:GetCmdArg(a:sect, a:page)) if where !~ "^/" if matchstr(where, " [^ ]*$") !~ "^ /" return 0 endif endif return 1 endfunc func <SID>GetPage(...) if a:0 >= 2 let sect = a:1 let page = a:2 elseif a:0 >= 1 let sect = "" let page = a:1 else return endif " To support: nmap K :Man <cword> if page == '<cword>' let page = expand('<cword>') endif if sect != "" && s:FindPage(sect, page) == 0 let sect = "" endif if s:FindPage(sect, page) == 0 echo "\nCannot find a '".page."'." return endif exec "let s:man_tag_buf_".s:man_tag_depth." = ".bufnr("%") exec "let s:man_tag_lin_".s:man_tag_depth." = ".line(".") exec "let s:man_tag_col_".s:man_tag_depth." = ".col(".") let s:man_tag_depth = s:man_tag_depth + 1 " Use an existing "man" window if it exists, otherwise open a new one. if &filetype != "man" let thiswin = winnr() exe "norm! \<C-W>b" if winnr() > 1 exe "norm! " . thiswin . "\<C-W>w" while 1 if &filetype == "man" break endif exe "norm! \<C-W>w" if thiswin == winnr() break endif endwhile endif if &filetype != "man" new setl nonu fdc=0 endif endif silent exec "edit $HOME/".page.".".sect."~" " Avoid warning for editing the dummy file twice setl buftype=nofile noswapfile setl ma nonu nornu nofen silent exec "norm 1GdG" let $MANWIDTH = winwidth(0) silent exec "r!/usr/bin/man ".s:GetCmdArg(sect, page)." | col -b" " Remove blank lines from top and bottom. while getline(1) =~ '^\s*$' silent norm ggdd endwhile while getline('$') =~ '^\s*$' silent norm Gdd endwhile 1 setl ft=man nomod setl bufhidden=hide setl nobuflisted endfunc func <SID>PopPage() if s:man_tag_depth > 0 let s:man_tag_depth = s:man_tag_depth - 1 exec "let s:man_tag_buf=s:man_tag_buf_".s:man_tag_depth exec "let s:man_tag_lin=s:man_tag_lin_".s:man_tag_depth exec "let s:man_tag_col=s:man_tag_col_".s:man_tag_depth exec s:man_tag_buf."b" exec s:man_tag_lin exec "norm ".s:man_tag_col."|" exec "unlet s:man_tag_buf_".s:man_tag_depth exec "unlet s:man_tag_lin_".s:man_tag_depth exec "unlet s:man_tag_col_".s:man_tag_depth unlet s:man_tag_buf s:man_tag_lin s:man_tag_col endif endfunc endif " vim: set sw=2:
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
README.txt | File | 869 B | 0644 |
|
a2ps.vim | File | 458 B | 0644 |
|
aap.vim | File | 716 B | 0644 |
|
abap.vim | File | 800 B | 0644 |
|
abaqus.vim | File | 3.31 KB | 0644 |
|
ada.vim | File | 6.26 KB | 0644 |
|
alsaconf.vim | File | 426 B | 0644 |
|
ant.vim | File | 1.31 KB | 0644 |
|
arch.vim | File | 419 B | 0644 |
|
art.vim | File | 410 B | 0644 |
|
aspvbs.vim | File | 1.87 KB | 0644 |
|
automake.vim | File | 325 B | 0644 |
|
bdf.vim | File | 437 B | 0644 |
|
bst.vim | File | 333 B | 0644 |
|
btm.vim | File | 316 B | 0644 |
|
c.vim | File | 1.92 KB | 0644 |
|
calendar.vim | File | 450 B | 0644 |
|
cdrdaoconf.vim | File | 375 B | 0644 |
|
ch.vim | File | 472 B | 0644 |
|
changelog.vim | File | 8.54 KB | 0644 |
|
clojure.vim | File | 2.78 KB | 0644 |
|
cobol.vim | File | 9.17 KB | 0644 |
|
conf.vim | File | 422 B | 0644 |
|
config.vim | File | 1.24 KB | 0644 |
|
context.vim | File | 955 B | 0644 |
|
cpp.vim | File | 288 B | 0644 |
|
crm.vim | File | 402 B | 0644 |
|
cs.vim | File | 802 B | 0644 |
|
csc.vim | File | 734 B | 0644 |
|
csh.vim | File | 1.59 KB | 0644 |
|
css.vim | File | 516 B | 0644 |
|
cucumber.vim | File | 5.2 KB | 0644 |
|
cvsrc.vim | File | 387 B | 0644 |
|
debchangelog.vim | File | 11.26 KB | 0644 |
|
debcontrol.vim | File | 1.84 KB | 0644 |
|
denyhosts.vim | File | 375 B | 0644 |
|
dictconf.vim | File | 422 B | 0644 |
|
dictdconf.vim | File | 423 B | 0644 |
|
diff.vim | File | 355 B | 0644 |
|
dircolors.vim | File | 419 B | 0644 |
|
docbk.vim | File | 530 B | 0644 |
|
dosbatch.vim | File | 777 B | 0644 |
|
dosini.vim | File | 446 B | 0644 |
|
dtd.vim | File | 1.1 KB | 0644 |
|
dtrace.vim | File | 1.12 KB | 0644 |
|
elinks.vim | File | 424 B | 0644 |
|
erlang.vim | File | 1.77 KB | 0644 |
|
eruby.vim | File | 3.08 KB | 0644 |
|
eterm.vim | File | 458 B | 0644 |
|
falcon.vim | File | 1.31 KB | 0644 |
|
fetchmail.vim | File | 416 B | 0644 |
|
flexwiki.vim | File | 1.83 KB | 0644 |
|
fortran.vim | File | 4.16 KB | 0644 |
|
framescript.vim | File | 768 B | 0644 |
|
fvwm.vim | File | 390 B | 0644 |
|
git.vim | File | 1.19 KB | 0644 |
|
gitcommit.vim | File | 2.16 KB | 0644 |
|
gitconfig.vim | File | 376 B | 0644 |
|
gitrebase.vim | File | 1.4 KB | 0644 |
|
gitsendemail.vim | File | 157 B | 0644 |
|
gpg.vim | File | 421 B | 0644 |
|
gprof.vim | File | 939 B | 0644 |
|
group.vim | File | 413 B | 0644 |
|
grub.vim | File | 422 B | 0644 |
|
haml.vim | File | 1.84 KB | 0644 |
|
hamster.vim | File | 1.88 KB | 0644 |
|
haskell.vim | File | 433 B | 0644 |
|
help.vim | File | 430 B | 0644 |
|
hostconf.vim | File | 375 B | 0644 |
|
hostsaccess.vim | File | 424 B | 0644 |
|
html.vim | File | 2.87 KB | 0644 |
|
htmldjango.vim | File | 331 B | 0644 |
|
indent.vim | File | 442 B | 0644 |
|
initex.vim | File | 1005 B | 0644 |
|
ishd.vim | File | 1.23 KB | 0644 |
|
java.vim | File | 1.65 KB | 0644 |
|
javascript.vim | File | 1.02 KB | 0644 |
|
jsp.vim | File | 1.96 KB | 0644 |
|
kconfig.vim | File | 375 B | 0644 |
|
kwt.vim | File | 851 B | 0644 |
|
ld.vim | File | 458 B | 0644 |
|
lftp.vim | File | 422 B | 0644 |
|
libao.vim | File | 428 B | 0644 |
|
limits.vim | File | 424 B | 0644 |
|
liquid.vim | File | 1.85 KB | 0644 |
|
lisp.vim | File | 911 B | 0644 |
|
logcheck.vim | File | 500 B | 0644 |
|
loginaccess.vim | File | 430 B | 0644 |
|
logindefs.vim | File | 428 B | 0644 |
|
logtalk.dict | File | 1.75 KB | 0644 |
|
logtalk.vim | File | 401 B | 0644 |
|
lprolog.vim | File | 1.25 KB | 0644 |
|
lua.vim | File | 973 B | 0644 |
|
m4.vim | File | 414 B | 0644 |
|
mail.vim | File | 1.08 KB | 0644 |
|
mailaliases.vim | File | 375 B | 0644 |
|
mailcap.vim | File | 422 B | 0644 |
|
make.vim | File | 935 B | 0644 |
|
man.vim | File | 4.6 KB | 0644 |
|
manconf.vim | File | 432 B | 0644 |
|
markdown.vim | File | 572 B | 0644 |
|
matlab.vim | File | 649 B | 0644 |
|
mf.vim | File | 404 B | 0644 |
|
modconf.vim | File | 465 B | 0644 |
|
mp.vim | File | 621 B | 0644 |
|
mplayerconf.vim | File | 460 B | 0644 |
|
mrxvtrc.vim | File | 798 B | 0644 |
|
msmessages.vim | File | 1.11 KB | 0644 |
|
muttrc.vim | File | 455 B | 0644 |
|
nanorc.vim | File | 435 B | 0644 |
|
netrc.vim | File | 416 B | 0644 |
|
nsis.vim | File | 553 B | 0644 |
|
objc.vim | File | 296 B | 0644 |
|
ocaml.vim | File | 22.5 KB | 0644 |
|
occam.vim | File | 1.27 KB | 0644 |
|
pamconf.vim | File | 421 B | 0644 |
|
pascal.vim | File | 667 B | 0644 |
|
passwd.vim | File | 412 B | 0644 |
|
pdf.vim | File | 2.55 KB | 0644 |
|
perl.vim | File | 2.77 KB | 0644 |
|
perl6.vim | File | 2.47 KB | 0644 |
|
php.vim | File | 2.75 KB | 0644 |
|
pinfo.vim | File | 423 B | 0644 |
|
plaintex.vim | File | 1.12 KB | 0644 |
|
postscr.vim | File | 1006 B | 0644 |
|
procmail.vim | File | 467 B | 0644 |
|
prolog.vim | File | 428 B | 0644 |
|
protocols.vim | File | 445 B | 0644 |
|
pyrex.vim | File | 766 B | 0644 |
|
python.vim | File | 1.33 KB | 0644 |
|
qf.vim | File | 459 B | 0644 |
|
quake.vim | File | 427 B | 0644 |
|
racc.vim | File | 437 B | 0644 |
|
readline.vim | File | 426 B | 0644 |
|
reva.vim | File | 709 B | 0644 |
|
rnc.vim | File | 419 B | 0644 |
|
rpl.vim | File | 620 B | 0644 |
|
rst.vim | File | 444 B | 0644 |
|
ruby.vim | File | 15.48 KB | 0644 |
|
sass.vim | File | 580 B | 0644 |
|
scheme.vim | File | 1.71 KB | 0644 |
|
screen.vim | File | 424 B | 0644 |
|
scss.vim | File | 200 B | 0644 |
|
sensors.vim | File | 443 B | 0644 |
|
services.vim | File | 440 B | 0644 |
|
setserial.vim | File | 427 B | 0644 |
|
sgml.vim | File | 1.18 KB | 0644 |
|
sh.vim | File | 1.17 KB | 0644 |
|
sieve.vim | File | 457 B | 0644 |
|
slpconf.vim | File | 465 B | 0644 |
|
slpreg.vim | File | 464 B | 0644 |
|
slpspi.vim | File | 455 B | 0644 |
|
spec.vim | File | 5.21 KB | 0644 |
|
sql.vim | File | 20.08 KB | 0644 |
|
sshconfig.vim | File | 429 B | 0644 |
|
sudoers.vim | File | 426 B | 0644 |
|
svg.vim | File | 1.17 KB | 0644 |
|
sysctl.vim | File | 441 B | 0644 |
|
tcl.vim | File | 1002 B | 0644 |
|
tcsh.vim | File | 1.18 KB | 0644 |
|
terminfo.vim | File | 418 B | 0644 |
|
tex.vim | File | 1.6 KB | 0644 |
|
treetop.vim | File | 404 B | 0644 |
|
tt2html.vim | File | 434 B | 0644 |
|
udevconf.vim | File | 422 B | 0644 |
|
udevperm.vim | File | 420 B | 0644 |
|
udevrules.vim | File | 414 B | 0644 |
|
updatedb.vim | File | 431 B | 0644 |
|
vb.vim | File | 1.86 KB | 0644 |
|
verilog.vim | File | 1.64 KB | 0644 |
|
vhdl.vim | File | 3.42 KB | 0644 |
|
vim.vim | File | 2.88 KB | 0644 |
|
xdefaults.vim | File | 469 B | 0644 |
|
xf86conf.vim | File | 422 B | 0644 |
|
xhtml.vim | File | 1.99 KB | 0644 |
|
xinetd.vim | File | 464 B | 0644 |
|
xml.vim | File | 1.87 KB | 0644 |
|
xmodmap.vim | File | 422 B | 0644 |
|
xs.vim | File | 465 B | 0644 |
|
xsd.vim | File | 1.14 KB | 0644 |
|
xslt.vim | File | 539 B | 0644 |
|
yaml.vim | File | 452 B | 0644 |
|
zimbu.vim | File | 5.2 KB | 0644 |
|
zsh.vim | File | 674 B | 0644 |
|