我使用vim进行C++代码编辑。但是它的代码补全效果不是很好(尽管我尝试过很多插件,比如OmniCppComplete)。Qt Creator的代码补全功能非常棒,它也有vim风格的编辑功能,这对我来说已经足够了。对我来说唯一不好的是我不能在Qt Creator中使用ctags功能(虽然Qt Creator有转到类定义的功能,但它需要更多的时间来解析源代码)。
是否可以创建源代码标记文件,并在Qt Creator中以伪vim模式使用它?
发布于 2013-03-17 17:07:31
在Vim中,C++的代码自动完成功能实际上更好。我将概述为使其工作而必须采取的步骤。但是,我不会在这里深入讨论太多细节(比如构建巨大的开源代码库、克隆存储库、为Vim安装插件等)。因为不然的话,为新手写一篇大型教程是值得的。所以,假设你是一个有良好意识和准备充分的软件开发人员,那么你就有了一个流利的指南:
如果你在Windows上,那么你就没那么幸运了,但从实用的角度来看,这实际上更好-你会有一个很棒的经验,可以自己构建巨大的东西,无论发生什么事情都能让事情正常工作。:)
所以,如果你使用的是Windows (在我看来使用的是Qt Creator ),那么你的系统上可能已经安装了MinGW。如果不是这样,那么我强烈建议您安装一个尖端的MinGW-w64。幸运的是,您不必自己编译它,因为rubenvb已经在targeting 64-bit Windows (aka x64)和targeting 32-bit Windows (aka x86)这两个变体中友好地构建了MinGW-w64工具链。只需根据您的操作系统下载一个。注释:这些链接指向MinGW-w64的最新(在撰写本文时)稳定版本,即基于GCC 4.7.2的版本。重要的:确保MinGW-w64在%PATH%环境中,所需的软件是CMake (一个流行的构建系统)。同样,如果您使用的是Unix,它可能已经安装好了。如果您使用的是Windows,那么只需下载并安装它即可。重要的:确保CMake在%PATH%环境中,我们最后需要的是Python。同样,如果您使用的是Unix,那么它已经安装在您的系统上。否则,你已经知道该怎么做了。:)官方上,Python有两个版本: 2.7.3和3.x.x -你绝对应该下载并安装这两个版本。Python是任何开发人员机器上必不可少的软件。重要的:确保Python2.7.3(不是3.x.x!)在我们已经安装了MinGW-w64,CMake,variable.
%PATH%环境中,我们已经准备好构建LLVM和Clang了。为了减轻痛苦,请转到我的Out-of-Source Builders项目,然后向下滚动到MinGW指南:使用MinGW-w64构建64位LLVM和Clang for Windows (64位)。如果你使用的是32位视窗系统,请不要注意标题中的64位(没关系),只需按照那里的说明进行操作即可。等待大约一个小时,直到LLVM和Clang构建完成。
配置neocomplcache
let g:neocomplcache_enable_at_startup = 1
let g:neocomplcache_enable_smart_case = 1
let g:neocomplcache_enable_camel_case_completion = 1
let g:neocomplcache_enable_underbar_completion = 1
let g:neocomplcache_min_syntax_length = 2
if !exists('g:neocomplcache_force_omni_patterns')
let g:neocomplcache_force_omni_patterns = {}
endif
let g:neocomplcache_force_overwrite_completefunc = 1
let g:neocomplcache_force_omni_patterns.c = '[^.[:digit:] *\t]\%(\.\|->\)'
let g:neocomplcache_force_omni_patterns.cpp = '[^.[:digit:] *\t]\%(\.\|->\)'
\ . '\|\h\w*::'
let g:neocomplcache_force_omni_patterns.objc = '[^.[:digit:] *\t]\%(\.\|->\)'
\ . '\|\h\w*::'
let g:neocomplcache_force_omni_patterns.objcpp = '[^.[:digit:] *\t]\%(\.\|->\)'
\ . '\|\h\w*::'
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"配置clang_complete
let g:clang_use_library = 1
let g:clang_auto_select = 0
let g:clang_complete_auto = 0
let g:clang_complete_copen = 1
let g:clang_complete_macros = 1
let g:clang_complete_patters = 1
let g:clang_library_path = 'D:/Toolchains/x64/LLVM/3.3/bin'
let g:clang_auto_user_options = 'path, .clang_complete'有关这两个插件的更多信息,请使用Vim的帮助文档::h clang_complete和:h neocomplcache。有很多选项可以调整,特别是在neocomplcache中。在我看来,这两个插件都是,对于任何使用Vim的C++开发人员来说都必须有。
备注:如果您不知道如何完成此处列出的一些步骤,您将不得不在StackOverflow上提出其他问题,或者出于本答案开头所述的原因寻找其他地方。
我希望这会对您有所帮助,并且您会从现在开始在开发工作中更喜欢Vim。:)
https://stackoverflow.com/questions/15000550
复制相似问题