A Day in the Life

2006-12-25

surround.vim 解説

うはwはるおかくんが解説書いてるじゃん!!!今気づいた><

vim/gvim でカーソル下の単語を htmlhelp で表示

vim の場合は dRuby で開く版作ったよ。まずは plugin/win32help.vim

if exists('g:loaded_win32help') && g:loaded_win32help
  finish
endif
let g:loaded_win32help = 1

function! g:Win32Help(path, funcname)
  if has("gui_win32")
    " based on vim6 part10 #334
    " http://vimwiki.net/?plugin=attach&refer=%B2%E1%B5%EE%A5%ED%A5%B0&openfile=vim6_part10.html
    if fnamemodify(a:path, ":e") == "chm"
      silent! execute "!start keyhh -\\#klink " . a:funcname . "  " . a:path
    elseif fnamemodify(a:path, ":e") == "hlp"
      silent! execute "!start winhlp32 -k " . a:funcname . "  " . a:path
    endif
  else
ruby << EOF
  require 'drb/drb'
  require 'timeout'
  DRb.start_service
  timeout(3) do
    viewer ||= DRbObject.new_with_uri(VIM::evaluate("g:Win32Help_drburi"))
    viewer.view VIM::evaluate("a:path"), VIM::evaluate("a:funcname")
  end
EOF
  endif
endfunction

~/.vimrc に適当に呼び出しを登録しておく。

" Win32Help
let g:Win32Help_drburi = 'druby://lucy:1879'
nmap   :call g:Win32Help('C:\other\htmlhelp\rubymanjp.chm', expand(''))
nmap   :call g:Win32Help('C:\other\htmlhelp\rails-1.2.pre.r5772.chm', expand(''))
nmap   :call g:Win32Help('C:\other\htmlhelp\mochikit.chm', expand(''))

command! -nargs=1 HR :call g:Win32Help('C:\other\htmlhelp\rubymanjp.chm', )
command! -nargs=1 HRa :call g:Win32Help('C:\other\htmlhelp\rails-1.2.pre.r5772.chm', )
command! -nargs=1 HM :call g:Win32Help('C:\other\htmlhelp\mochikit.chm', )

で、windows 側から dRuby で待ち受けとく

class Win32Help
  KEYHH_CMD = 'keyhh'
  def view(path, funcname, keyhh = KEYHH_CMD)
    if File.extname(path) == 'hlp'
      arg = '-k'
    else
      arg = '-#klink'
    end
#    p(keyhh, arg, funcname, path)
    system(keyhh, arg, funcname, path)
  end
end

if __FILE__ == $0
  require 'drb/drb'
  service = DRb.start_service 'druby://:1879', Win32Help.new
  puts "start remove Win32Help viewer (#{service.uri})"
  DRb.thread.join
end

KeyHH が必須。これで coLinux の vim から htmlhelp を簡単に引けて便利!だと思う。

gvim でカーソル下の単語をを htmlhelp で表示

KeyHH使って実現。Vim6 Part10より。なるほろー。coLinux 上の vim からホストOSで htmlhelp 開くなら dRuby が手っ取り早いかな。。

334 :mattn@Vim%Chalice :04/12/16 19:04:36

>>330

こんなのではダメですか?

function! Win32Help(topic) 
  let fname = 'C:\path\to\help\file.help' 
  if fnamemodify(fname,":e")=="chm" 
    silent! execute "!start keyhh -\\#klink " . a:topic . "  " . fname 
  elseif fnamemodify(fname,":e")=="hlp" 
    silent! execute "!start winhlp32 -k " . a:topic . "  " . fname 
  endif 
endfunction 
command! -nargs=1 Win32Help call Win32Help() 
nmap  :call Win32Help(expand(''))
記事の一覧 >