VIM:在窗口顶部显示自定义参考栏

VIM:在窗口顶部显示自定义参考栏,vim,Vim,我想为要使用的基本HTML编辑设置一个vim环境 是别人干的。为此,我想建立一个快速参考栏 在窗口顶部显示以下内容 | <F1> | <F2> | <F3> | ... | <br /> | <hr /> | bold | ... | | | |。。。 |||粗体|。。。 等等。可以这样做吗?您可以使用附加的带有暂存缓冲区的窗口来显示类似的内容 这是插件的原型。只需使用运行以下命令:so或将其放入

我想为要使用的基本HTML编辑设置一个vim环境 是别人干的。为此,我想建立一个快速参考栏 在窗口顶部显示以下内容

|   <F1>   |   <F2>   |  <F3>  |  ...
|  <br />  |  <hr />  |  bold  |  ...
| | | |。。。
|
|
|粗体|。。。

等等。可以这样做吗?

您可以使用附加的带有暂存缓冲区的窗口来显示类似的内容

这是插件的原型。只需使用
运行以下命令: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()

谢谢这实际上是一个非常好的主意,show_help()函数有一点:我在尝试将名称设置为“HTML help”时出错,vim抱怨只需要一个文件名:使用一个单词就可以解决这个问题。另外,如何让帮助窗口在其他窗口发生任何情况下保持其高度不变?我不确定您是否可以强制Vim冻结窗口高度。我在缓冲区名称中转义了“空格”。你可以试试这个变体。