cmake-help.vim 668 B

123456789101112131415161718192021
  1. nmap ,hc :call OpenCmakeHelp()<CR>
  2. function! OpenCmakeHelp()
  3. let s = getline( '.' )
  4. let i = col( '.' ) - 1
  5. while i > 0 && strpart( s, i, 1 ) =~ '[A-Za-z0-9_]'
  6. let i = i - 1
  7. endwhile
  8. while i < col('$') && strpart( s, i, 1 ) !~ '[A-Za-z0-9_]'
  9. let i = i + 1
  10. endwhile
  11. let start = match( s, '[A-Za-z0-9_]\+', i )
  12. let end = matchend( s, '[A-Za-z0-9_]\+', i )
  13. let ident = strpart( s, start, end - start )
  14. execute "vertical new"
  15. execute "%!cmake --help-command ".ident
  16. set nomodified
  17. set readonly
  18. endfunction
  19. autocmd BufRead,BufNewFile *.cmake,CMakeLists.txt,*.cmake.in nmap <F1> :call OpenCmakeHelp()<CR>