【问题标题】:Using VIM for C++/Qt development w/ Autocomplete使用 VIM 进行带自动完成功能的 C++/Qt 开发
【发布时间】:2019-11-10 18:48:16
【问题描述】:

在工作中,我主要使用 C++ 编程,当需要图形/多线程/网络启用时使用 Qt。我们的环境是 windows,我目前使用 Visual Studio(仅用于调试目的)和 Qt-Creator 的组合进行编程以进行实际编码(比如它们的自动完成功能比 VS 更好)。

在家里,我主要使用 linux (fedora) 并且仍然使用 Qt-Creator,因为我还没有找到替代方案。我几乎将 VIM 用于其他所有内容(编辑方面),并且基本上喜欢它的所有内容。

我希望能够将 VIM 用于我的编程(在家和工作中),但我发现如果没有自动完成功能,我的工作效率会降低。

任何人都有关于如何在 VIM 中为 C++ 和 Qt 获得“好”自动完成(是的......不是很详细......“好”......)的很好的教程、论坛帖子或个人经验?我相信它非常适合 linux/vim/qt/c++ 但它也适用于 windows 吗?

谢谢

【问题讨论】:

    标签: c++ qt vim autocomplete


    【解决方案1】:

    看看这个:http://vim.wikia.com/wiki/VimTip1608
    配置起来很痛苦,但毕竟你会得到类似 VS 的自动补全功能 + 所有美味的全补全功能,比如 Ctrl-P 来补全单词,Ctrl-X-Ctrl-L 来补全行等等。

    【讨论】:

    • 感谢您的链接。看起来正是我想要的。
    • 效果很好。感谢您的发表。请注意,在链接上,请务必阅读底部附近的评论。让它自动完成局部变量名称也很有用。
    【解决方案2】:

    我认为我的 vimrc 中没有任何魔法设置可以启用此功能,但我可以开始输入,然后(同时仍处于插入模式)按 Ctrl+N 让 vim 建议完成。它似乎在检查打开的缓冲区是否有可能完成。它并不完美,但在 98% 的情况下,它可以满足我的需求,并且不需要任何设置工作。

    【讨论】:

    • 很有趣,我一定要试试这个!
    • 很高兴我使用了搜索而不是发布另一个关于此的问题。这正是我所需要的。
    • 这确实可以节省时间,只要您在不同的缓冲区中打开一堆文件。
    • 我想返回这个答案以提供更新...我现在仅将本机 VIM(与 tmux 结合)用于我的 c++ 开发。诀窍是根据需要使用此默认自动完成与尽可能多的打开缓冲区。我在 cmd 行(使用 find 和 grep)将 VIM 加载到我需要的每个目录和文件中。然后我使用Ctrl+NCtrl+P 结合:b filename(有自己的搜索)。它为您提供当前打开的缓冲区中的项目,然后是其他切换的窗口,然后是其他打开的选项卡,然后是最近打开的缓冲区,然后其他任何内容都可能匹配...gitlab.com/snippets/1885618
    【解决方案3】:

    您可能想看看OmniCpp

    这是一组 Vim 脚本,可以根据 c-tags 自动完成。

    设置起来并不简单,但之后效果很好。基本上你必须为你使用的包含文件生成 c-tags。然后插件集成到 Vim 中来完成你输入的内容,具体取决于变量类型。

    【讨论】:

    • 任何可以帮助我入门的链接?看起来我需要 ctags 和omnicpp。在 Windows 上可用?
    • @g19fanatic:当然。我在 Linux 和 Windows 上使用它。奇迹般有效。看看我发布的链接和这个链接:ctags.sourceforge.net
    【解决方案4】:

    因为它是“一个痛苦的配置”vim 来完成全功能 没有人提到它,因为你也想在工作中的 Windows 电脑上找到一个解决方案,所以我找到了最好、最轻松的选择——而且我肯定会 帮助很多其他人 - 在 qt 创建器中激活“Fake Vim” 因为它已预装在最新版本的选项中。

    Tools-->Options-->FakeVim and [x] Use Fake Vim

    Use Fake Vim in the qt creator

    这样 QT-creator 的行为就像 vim 一样,它不应该 打开 qt-crator 而不是 vim 会有所作为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-31
      • 2012-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-15
      相关资源
      最近更新 更多