gpt4 book ai didi

Qt Creator 标签文件

转载 作者:行者123 更新时间:2023-12-04 08:02:02 26 4
gpt4 key购买 nike

我使用 vim 进行 C++ 代码编辑。但是它的代码补全不太好(虽然我试过很多插件,比如OmniCppComplete)。 Qt Creator 的代码补全很棒,而且还有 vim 风格的编辑功能,对我来说已经足够了。唯一对我来说不太好的是我不能在 Qt Creator 中使用 ctags 功能(虽然 Qt Creator 具有转到类定义的功能,但解析源代码需要更多时间)。

是否可以创建源代码标记文件并在假 vim 模式下在 Qt Creator 中使用它?

最佳答案

Vim 中 C++ 的代码完成实际上更胜一筹。我将概述您必须采取的步骤才能使其发挥作用。但是,我不会在这里详细介绍(例如构建庞大的开源代码库、克隆存储库、为 Vim 安装插件等),否则值得为新手编写一个大型教程。因此,假设您是一个非常了解并准备充分的软件开发人员,那么您将获得一个流畅的指南:

  • 获取并安装 clang_complete(Vim 插件);
  • 获取并安装 neocomplcache(Vim 插件);
  • 如果您在 Unix 上,那么您很幸运,因为您的系统上可能已经安装了 LLVMClang,或者您必须使用包管理器并使用单个命令安装它们。如果是这样,那么您可以立即跳到最后一步(#7)。

    如果您使用的是 Windows,那么您就不那么幸运了,但从实践的角度来看,这实际上更好 - 您将拥有自己构建大量东西并无论如何都使事情工作的丰富经验。 :)

    因此,如果您使用的是 Windows(并且我可以看到使用 Qt Creator),那么您的系统上可能已经安装了 MinGW。如果情况并非如此,那么我强烈建议您安装一个前沿的 MinGW-w64 。幸运的是,您不必自己编译它,因为 rubenvb 已经在两种变体中构建了 MinGW-w64 工具链: targeting 64-bit Windows (aka x64)targeting 32-bit Windows (aka x86) 。只需根据您的操作系统下载一个。 注意 :这些链接指向 MinGW-w64 的最新(在撰写此答案时)稳定版本,即基于 GCC 4.7.2。 重要 :确保 MinGW-w64 在 %PATH% 环境变量中。
  • 需要的另一个软件是 CMake(一种流行的构建系统)。同样,如果您使用的是 Unix,它可能已经安装。如果您使用的是 Windows,则只需下载并安装它。 重要 :确保 CMake 在 %PATH% 环境变量中。
  • 我们最后需要的是 Python 。再说一次,如果您使用的是 Unix,那么它已经安装在您的系统上。否则,你已经知道该怎么做了。 :) 正式地说,Python 有 2 个版本:2.7.3 和 3.x.x - 您绝对应该下载并安装这两个版本。 Python 是任何开发人员机器上必不可少的软件。 重要 :确保 Python 2.7.3(不是 3.x.x!)在 %PATH% 环境变量中。
  • 现在我们已经安装了 MinGW-w64、CMake、Python,我们准备构建 LLVM 和 Clang。为了减轻痛苦,请转到我的 Out-of-Source Builders 项目并向下滚动到 Guide: Build 64-bit LLVM and Clang for Windows (64-bit) Using MinGW-w64 。如果您使用的是 32 位 Windows,请不要注意标题中的 64 位 (无所谓),只需按照那里的说明进行操作即可。等待大约一个小时,直到构建 LLVM 和 Clang。
  • 我们差不多完成了,剩下的就是正确配置 Vim。在这里,我将简单地提供我最有可能满足您需求的配置。

  • 配置 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 进行开发工作。 :)

    关于Qt Creator 标签文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15000550/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com