vim配置c语言开发环境 vim简单配置教程( 六 )


let g:ycm_add_preview_to_completeopt = 0let g:ycm_show_diagnostics_ui = 0let g:ycm_server_log_level = 'info'let g:ycm_min_num_identifier_candidate_chars = 2let g:ycm_collect_identifiers_from_comments_and_strings = 1let g:ycm_complete_in_strings=1let g:ycm_key_invoke_completion = '<c-z>'set completeopt=menu,menuonenoremap <c-z> <NOP>let g:ycm_semantic_triggers ={'c,cpp,python,java,go,erlang,perl': ['re!w{2}'],'cs,lua,javascript': ['re!w{2}'],}这样可以输入两个字符就自动弹出语义补全,不用等到输入句号 . 或者 -> 才触发,同时关闭了预览窗口和代码诊断这些 YCM 花边功能,保持清静,对于原型预览和诊断我们后面有更好的解决方法,YCM这两项功能干扰太大 。
上面这几行配置具体每行的含义,可以见:《YouCompleteMe 中容易忽略的配置》 。另外我在 Windows 下编译了一个版本,你用 Windows 的话无需下载VS编译,点击 [这里] 。我日常开发使用 YCM 辅助编写 C/C++, Python 和 Go 代码,基本能提供 IDE 级别的补全 。
函数列表
不再建议使用 tagbar, 它会在你保存文件的时候以同步等待的方式运行 ctags (即便你没有打开 tagbar),导致vim操作变卡,特别是 windows下开了反病毒软件扫描的话,有时候保存文件卡5-6秒 。2018年了,我们有更好的选择,比如使用
@Yggdroot
开发的 LeaderF 来显示函数列表:
全异步显示文件函数列表,不用的时候不会占用你任何屏幕空间,将 ALT+P 绑定到 `:LeaderfFunction!` 这个命令上,按 ALT+P 就弹出当前文件的函数列表,然后可以进行模糊匹配搜索,除了上下键移动选择外,各种vim的跳转和搜索命令都可以始用,回车跳转然后关闭函数列表,除此之外按 i 进入模糊匹配,按TAB切换回列表选择 。
Leaderf 的函数功能属于你想要它的时候它才会出来,不想要它的时候不会给你捣乱 。
文件切换
文件/buffer模糊匹配快速切换的方式,比你打开一个对话框选择文件便捷不少,过去我们常用的 CtrlP 可以光荣下岗了,如今有更多速度更快,匹配更精准以及完美支持后台运行方式的文件模糊匹配工具 。我自己用的是上面提到的 LeaderF,除了提供函数列表外,还支持文件,MRU,Buffer名称搜索,完美代替 CtrlP,使用时需要简单调教下:
let g:Lf_ShortcutF = '<c-p>'let g:Lf_ShortcutB = '<m-n>'noremap <c-n> :LeaderfMru<cr>noremap <m-p> :LeaderfFunction!<cr>noremap <m-n> :LeaderfBuffer<cr>noremap <m-m> :LeaderfTag<cr>let g:Lf_StlSeparator = { 'left': '', 'right': '', 'font': '' }let g:Lf_RootMarkers = ['.project', '.root', '.svn', '.git']let g:Lf_WorkingDirectoryMode = 'Ac'let g:Lf_WindowHeight = 0.30let g:Lf_CacheDirectory = expand('~/.vim/cache')let g:Lf_ShowRelativePath = 0let g:Lf_HideHelp = 1let g:Lf_StlColorscheme = 'powerline'let g:Lf_PreviewResult = {'Function':0, 'BufTag':0}这里定义了 CTRL+P 在当前项目目录打开文件搜索,CTRL+N 打开 MRU搜索,搜索你最近打开的文件,这两项是我用的最频繁的功能 。接着 ALT+P 打开函数搜索,ALT+N 打开 Buffer 搜索:
LeaderF 是目前匹配效率最高的,高过 CtrlP/Fzf 不少,敲更少的字母就能把文件找出来,同时搜索很迅速,使用 Python 后台线程进行搜索匹配,还有一个 C模块可以加速匹配性能,需要手工编译下 。LeaderF在模糊匹配模式下按 TAB 可以切换到匹配结果窗口用光标或者 Vim 搜索命令进一步筛选,这是 CtrlP/Fzf 不具备的,更多方便的功能见它的官方文档 。
文件/MRU 模糊匹配对于熟悉的项目效率是最高的,但对于一个新的项目,通常我们都不知道它有些什么文件,那就谈不上根据文件名匹配什么了,我们需要文件浏览功能 。如果你喜欢把 Vim 伪装成 NotePad++ 之类的,那你该继续使用 NERDTree 进行文件浏览,但你想按照 Vim 的方式来,推荐阅读这篇文章:


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: