积累了一段时间的配置,分享几个相对冷门Vim插件相关的配置。
首先是completor.vim
,是一款支持异步和多种语言的补全插件,插件本身支持ultisnips
代码片段补全,但是选中补全之后还得按键来展开代码片段,所以想让它在补全完之后自动展开:
func! s:ultisnips_expand()
if has_key(v:completed_item, 'menu')
if v:completed_item['menu'] =~# '^\[snip\]'
call UltiSnips#ExpandSnippet()
endif
endif
endfunc
au! CompleteDone * call s:ultisnips_expand()
之后是vim-doge
,是一款根据函数声明来生成注释的插件,原来生成C/C++注释时不需要clang
,现在可能作者觉得正则太麻烦所以直接使用python的clang模块来生成,由于机器本身安装了Qt Creator
带了libclang.dll
,所以想不通过修改源码的方式设置libclang.dll
:
func s:set_clang_library()
if pyxeval("'Config' in locals().keys()") == 0
pyx from clang.cindex import Config
pyx Config.set_library_file(r'D:\Develop\QtCreator\bin\libclang.dll')
endif
endfunc
au FileType c,cpp call s:set_clang_library()
接下来是vim-illuminate
,是一款高亮当前光标所在单词的插件,配合插件的g:Illuminate_ftHighlightGroups
设置,可以高亮函数名和变量名,虽然不是基于语义分析,但是也足够使用。
最后则是tig
,这个不是Vim插件,是一款字符终端git浏览器,主要msys2中的gitk一直有问题,而又看到emacs中的magit的操作方式比较舒服,所以可以用Vim中的terminal配合tig当作git客户端使用,比一些专门的插件更符合操作习惯。
本来还有LeaderF
中将LeaderF rg
结果导入到Quickfix List中的,但是有人提了PR了,还是把不修改源码实现功能贴出来分享下吧:
function! s:exportQflist()
pyx <<EOF
import vim
buffer = vim.current.buffer
if (buffer.options["filetype"] == b'leaderf' and \
anyHub._last_cmd.args[0] == 'rg'):
keys = ['filename', 'lnum', 'text']
items = [dict(zip(keys, l.split(':', 2))) for l in buffer]
if items:
vim.command("call setqflist(pyxeval('items'), 'r')")
vim.command('normal q')
vim.command('copen')
EOF
endfunction
nmap <silent> <leader>q :call <SID>exportQflist()<CR>
转载请注明: 本文《冷门Vim插件配置》来源于bstaint的博客
没有评论:
发表评论