"------------------------------------------------ "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'