分类: LINUX
2012-02-29 21:10:35
Source Insight左边是Taglist,右边是FileExplorer,下面是预览窗口,最上面还有个已打开的文件列表条。
需要三个插件:Winmanager,Taglist,MiniBufExpl,都可以从vim.org上下载。
1)首先,根据《Vim的Winmanager插件的个性化修改》,可以完成在右边显示FileExplorer
2)设置vimrc:
let g:miniBufExplorerMoreThanOne = 0 "一个窗口,也显示文件列表条窗口(MiniBufExpl)
nmap wm :TlistToggle
3)修改Winmanager插件,保证焦点一直在代码窗口。这里的修改跟wm映射的打开顺序有关:
修改ToggleWindowsManager():
let l:bufnr = bufnr('-MiniBufExplorer-')
if l:bufnr != -1
let nr = bufwinnr(l:bufnr) + 1
elseif
let nr = winnr()
endif
call s:StartWindowsManager()
exe nr . "wincmd w"
4)修改预览窗口的位置:通过【ctrl + w + }】打开预览窗口的位置在上方,在vimrc中添加如下语句
nmap
func PreviewWord()
if &previewwindow " 不要在预览窗口里执行
return
endif
let w = expand("
let cwin = winnr()
if w =~ '\a' " 如果该单词包括一个字母
try
exe "belowright ptag " . w
catch
return
endtry
silent! wincmd P "跳转至预览窗口
if &previewwindow " 如果确实转到了预览窗口……
if has("folding")
silent! .foldopen "展开折叠的行
endif
call search("$", "b") " 到前一行的行尾
let w = substitute(w, '\\', '\\\\', "")
call search('\<\V' . w . '\>') "定位光标在匹配的单词上
"给在此位置的单词加上匹配高亮
hi previewWord term=bold ctermbg=green guibg=green
exe 'match previewWord "\%' . line(".") . 'l\%' . col(".") . 'c\k*"'
endif
endif
exe cwin."wincmd w"
endfun
5)设置完毕后,按wm就可以打开窗口布局,按,pp即可以打开指定单词的预览窗口。
有个遗留问题,按,pp打开的窗口有些不是预览窗口,不能用:pclose,不知道什么原因。由于,打开的窗口是在代码窗口之下,想了个歪招,加了如下映射:
nmap