"------------------------------------------------
"vimwiki
"""""""""""""""""""""""""""""""""""""""""""""""""
Plugin 'vimwiki/vimwiki'
"按F4转为html, <leader>whh 用浏览器打开
let g:vimwiki_table_auto_fmt = 0
let g:vimwiki_CJK_length = 1
let g:vimwiki_camel_case = 0
let g:vimwiki_use_mouse = 1
if 0
Plugin 'JamshedVesuna/vim-markdown-preview'
let g:vimwiki_list = [{'path': 'D:/vimwiki/',
\ 'path_html': 'D:/vimwiki/',
\ 'syntax': 'markdown', 'ext': '.md',
\ 'html_header': 'D:/vimwiki/template/header.tpl',}]
else
let wiki = {}
"设定vimwiki的路径
let wiki.path = 'D:/vimwiki/'
"设定html代码的路径
let wiki.path_html = 'D:/vimwiki/'
"保存自动添加更新目录
let wiki.auto_toc = 1
let wiki.nested_syntaxes = {'python': 'python', 'c++': 'cpp', 'c': 'c'}
let g:vimwiki_list = [wiki]
"let g:vimwiki_browsers=['C:\Program Files\internet explorer\iexplore.exe']
map <F4> :Vimwiki2HTML<cr>
map <S-F4> :VimwikiAll2HTML<cr>
endif
"------------------------------------------------
"自动补全 ( { [ " '
"""""""""""""""""""""""""""""""""""""""""""""""""
if 1
Plugin 'jiangmiao/auto-pairs'
let g:AutoPairsShortcutToggle = '<M-u>'
:vnoremap ( <esc>`<i(<esc>`>a)<esc>
else
function! AutoPair(open, close)
let line = getline('.')
if col('.') > strlen(line) || line[col('.') - 1] == ' '
return a:open.a:close."\<ESC>i"
else
return a:open
endif
endf
function! ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
else
return a:char
endif
endfunction
"自动补全条件:一是光标在行末 二是光标下一个字符是空格
:inoremap ( <c-r>=AutoPair('(', ')')<CR>
"":inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {<CR>}<ESC>O
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
endif
"------------------------------------------------ "a.vim 切换"F9 却换.h 与 .c文件 """"""""""""""""""""""""""""""""""""""""""""""""" Plugin 'a.vim' ":A :AS :AV 头/源文件切换,窗口分为左右两个窗口,并打开.h/.c文件 nnoremap <silent> <F9> :AV<cr> let g:alternateSearchPath = 'sfr:./,sfr:../include,sfr:http://www.cnblogs.com/include,sfr:../source,sfr:../src,sfr:../inc'
"------------------------------------------------
"minibufexplpp.vim 多文档顶部标签栏编辑
"""""""""""""""""""""""""""""""""""""""""""""""""
" 使用会出现多个标签栏 严重影响体验
if 0
Plugin 'minibufexpl.vim'
"操作:<C-Tab>前一项 <C-Shift-Tab>后一项 :Nb快速打开指定编号N文件
let g:miniBufExplMapWindowNavArrows = 1
"let g:miniBufExplMapWindowNavVim = 1
"let g:miniBufExplMapCTabSwitchbufs = 1
let g:miniBufExplModSelTarget = 1
"解决FileExplorer窗口变小问题
let g:miniBufExplForceSyntaxEnable = 1
let g:miniBufExplorerMoreThanOne = 2
endif
"------------------------------------------------ "winmannger.vim """"""""""""""""""""""""""""""""""""""""""""""""" Plugin 'winmanager' "配置FileExplorer let g:winManagerWindowLayout='FileExplorer|TagList' "将winmanager设置成浏览器和TagList的组合 "映射winmanager的快捷键 nmap wm :WMToggle<cr>
"------------------------------------------------
"lookupfile.vim genutils.vim
"""""""""""""""""""""""""""""""""""""""""""""""""
Plugin 'genutils'
Plugin 'lookupfile'
let g:LookupFile_MinPatLength = 2 "最少输入2个字符开始匹配
let g:LookupFile_PreserveLastPattern = 0 "不保存上次查找的字符串
let g:LookupFile_PreservePatternHistory = 1 "保存查找历史
let g:LookupFile_AlwaysAcceptFirst = 1 "回车打开第一个匹配项目
let g:LookupFile_AllowNewFiles = 0 "不允许创建不存在的文件
function! ProjectTagUpdateLookupFile()
"echo "generate lookupfile.tag"
" 使用全局标记当前位置到Z (取巧点:使用全局标记)
execute "ma Z"
" 跳转编号1的.vim文件 *.vim必须保证编号1文件 (取巧点:1b)
execute "1b"
if filereadable(g:project_lookup_file)
call delete(g:project_lookup_file)
endif
execute "cd " . g:this_project_base_dir
let l:lookup_tags = ["!_TAG_FILE_SORTED 2 \/2=foldcase\/"]
if has("win32")
let l:this_project_base_dir = substitute(g:this_project_base_dir, "/", "\\", "g") . "\\"
else
let l:this_project_base_dir = g:this_project_base_dir
endif
"let l:lookup_tags_file_string = system(g:project_find_program . " " . l:this_project_base_dir . " " . g:project_find_param)
let l:lookup_tags_file_string = system(g:project_find_program . " " . g:project_find_param)
let l:lookup_tags_file_list = split(l:lookup_tags_file_string, '\n')
let l:lookup_tags_file_list = sort(l:lookup_tags_file_list)
let l:item = ""
let l:count = 0
for l:item in l:lookup_tags_file_list
let l:item = fnamemodify(l:item, ':t') . "\t" . l:item . "\t" . "1"
let l:lookup_tags_file_list[l:count] = l:item
let l:count = l:count + 1
endfor
call extend(l:lookup_tags, l:lookup_tags_file_list)
call writefile(l:lookup_tags, g:project_lookup_file)
"echo "generate lookupfile tag done"
" 跳转全局标记位置Z
execute "'Z"
endfunction
let g:project_find_program = "dir /B /S /A-D /ON"
let g:project_find_param = "*.fnc *.prc *.trg *.pck *.typ *.spc *.bdy *.tps *.tpb *.txt *.sql *.c *.h *.py"
"查找文件名及包含出现字符串的文件
nmap <silent> ,lf :LUTags<cr>
"查找已打开的buffer字符名
nmap <silent> ,ll :LUBufs<cr>
"指定目录结构查找
nmap <silent> ,lw :LUWalk<cr>
",lf 根据文件内容信息打开文件
cab lookupfile <ESC>:call ProjectTagUpdateLookupFile()<cr>
"------------------------------------------------ "indentline """"""""""""""""""""""""""""""""""""""""""""""""" Plugin 'Yggdroot/indentLine' "let g:indentLine_char='┆' let g:indentLine_enabled = 0 cab <unique> line :IndentLinesToggle<cr>
"------------------------------------------------ " """"""""""""""""""""""""""""""""""""""""""""""""" "Plugin 'grep.vim' "Plugin 'Mark' "Plugin 'visualmark'