2009-11-16 104 views

回答

5

您可以使用附加窗口和臨時緩衝區來顯示類似的內容。

這是插件的原型。只要運行與:so以下或投入一些文件,這裏面

~/.vim/plugin 

目錄

function! s:set_as_scratch_buffer() 
    setlocal noswapfile 
    setlocal nomodifiable 
    setlocal bufhidden=delete 
    setlocal buftype=nofile 
    setlocal nobuflisted 
    setlocal nonumber 
    setlocal nowrap 
    setlocal cursorline 
endfunction 

function! s:activate_window_by_buffer_name(name) 
    for i in range(1, winnr('$')) 
     let name = bufname(winbufnr(i)) 
     let full_name = fnamemodify(bufname(winbufnr(i)), ':p') 
     if name == a:name || full_name == a:name 
     exec i.'wincmd w' 
     return 1 
     endif 
    endfor 

    return 0 
endfunction 

let s:help_window_name = 'HTML\ help' 

function! s:show_help() 
    let current_name = fnamemodify(@%, ':p') 

    if ! s:activate_window_by_buffer_name(s:help_window_name) 
     exec 'top 5 split '.s:help_window_name 
     call s:set_as_scratch_buffer() 
    endif 

    setlocal modifiable 

    let help_lines = ['line1', 'line2'] 
    call setline(1, help_lines) 

    setlocal nomodifiable 

    call s:activate_window_by_buffer_name(current_name) 
endfunction 

command! -nargs=0 HtmlHelp call s:show_help() 
au! BufRead,BufNewFile *.html call s:show_help() 
+0

謝謝!這實際上是一個非常好的想法,只是你的show_help()函數有一件事:我試圖設置名稱爲'HTML幫助'時出現錯誤,vim抱怨只需要一個文件名:使用單個單詞修復該錯誤。另外,無論遇到其他問題,我怎樣才能讓幫助窗口保持其高度不變? – 2009-11-16 10:35:28

+0

我不確定你可以強制Vim凍結窗口高度。我逃過緩衝區名稱中的'空間'。你可以嘗試這個變種。 – 2009-11-16 11:48:22