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(''))