我有一个项目,其中包含一堆遵循标准C++头文件命名约定的C++头文件;也就是说,名为Foo的类将在名为Foo的文件中声明,而不是在Foo.h或Foo.hh文件中。有没有一种好方法可以将vim配置为仅对这些文件进行语法高亮显示?一个稍微不那么令人愉快的后备方案是为所有没有扩展名的文件启用C++样式的突出显示。我不确定是否有任何更复杂的方法来检测文件类型,而不是仅仅依靠其扩展名。 最佳答案 您可以为此使用modeline功能。模式允许您在文件的前几行/最后几行的注释中设置某些选项。这使它成为设置编码指南和折叠参数的好地方。出于安全原因,
我正在将Vim用于我开始从事的C++项目,最近我花了很多时间浏览现有代码以掌握它。为了使浏览更容易,我在Vim中设置了ctags和cscope以跳转到定义和查找引用。但是,我发现他们都不够聪明,无法知道成员变量/函数属于哪个类。例如:classSquare;...Squarea;...a.rotate();尝试查找rotate()的定义也会从其他类中调出成员函数,例如Triangle。我在Vim中使用g]来显示匹配标签的列表,幸运的是ctags列出了每个条目的关联类。然而,当有200个类具有相同的成员函数时,寻找正确的标签可能会很烦人。另外,如果我在函数定义中:Square::rota
vim+ctags适用于C项目,因为C不允许函数重载,并且由于基本的作用域设施,通常鼓励手动为符号添加前缀。在C++中,函数经常在子类中被重载和覆盖。这使得vim总是跳转到"Ctrl+]"上错误类中的标签。有没有办法让它表现得更聪明一点?我知道我可以带一个带有标签替代品的列表,但是总是不得不调出这个列表,并在我想跳转到定义时按数字找到所需的标签,这非常烦人。 最佳答案 还有“tagNext”移动到下一个标签(或:tn) 关于c++-vim、ctags和同名标识符,我们在StackOver
如果我在函数的中间,我想在vim中走到它的最后。我遇到了这个问题,因为我们有时有超过500行的功能(不要问为什么)。我用vim,gvim。 最佳答案 ][转到第一列中的下一个“}”。阅读:help29.3以了解有关在程序中移动的更多信息。 关于c++-转到Vim中C++函数的末尾,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/674930/
我打算创建C++IDEVim可扩展的插件。做一个能满足我自己需求的不是问题。此插件将与工作区、项目及其依赖项一起使用。这适用于使用gcc作为c++编译器的类unix系统。所以我的问题是,您需要IDE提供的最重要的东西是什么?请注意,这是Vim,几乎所有,几乎,都是可能的。几个问题:您多久管理一次不同的工作空间,其中包含项目以及它们之间的关系?这个过程中最烦人的事情是什么。是否有必要从Makefile重新创建“项目”?谢谢。创建此插件的原因:通过一堆插件和自写的插件,我们可以模拟大多数事情。当我们在一个大的“不定式”项目上工作时是可以的。当我们已经有一个makefile或jam文件时很好
是否可以让gVim像VisualStudio一样实时突出显示C++语法错误(下面的红色曲线)? 最佳答案 简短回答:是的,但不会像在IDE中那样流畅/直接。长答案:虽然IDE对一组(通常非常有限的)编程语言具有内置支持(和解析器等),但Vim是一个通用编辑器,因此必须依赖外部工具来完成语法检查。内置方法是执行:make并在quickfixlist中接收(语法或编译器)错误列表。有插件可以自动化;Syntastic是一款非常受欢迎的软件,支持多种语言。但是,由于Vim必须调用外部可执行文件并且几乎不支持异步运行任务,所以在您看到错误之
在我们的C++代码库中,我们保留99列行,但保留79列多行注释。是否有自动执行此操作的好策略?我假设这些模式是已知的,因为智能注释行连接和前导*插入。 最佳答案 显然代码和注释都使用相同的textwidth选项。据我所知,唯一的技巧是动态设置此选项::autocmdCursorMoved,CursorMovedI*:ifmatch(getline(.),'^\s*\*')==0|:setlocaltextwidth=79|:else|:setlocaltextwidth=99|:endif这里的关键部分是检测我们何时在评论中。如果您
我刚刚通过vundle为Vim安装了YouCompleteMe。它可以工作,但它只显示当前文件中包含的单词。我想用它来开发c++程序,例如,如何配置它以显示/usr/include中c++头文件的自动完成功能?非常感谢。 最佳答案 您需要导航到~/.vim/bundles/YouCompleteMe并使用--clang-completer运行安装脚本,./install也是如此.sh--clang-completer。完成后,您应该支持类似C的语言。您可能还需要在~/.vimrc。 关于
目前是否有在vim中调试v8的选项?在v8中,他们弃用了旧选项--debug和--debug-brk并且node-vim-debugger似乎不知道新协议(protocol).. 最佳答案 它有点旧,但我自己寻找解决方案我发现了这个:https://github.com/eliba2/vim-node-inspect.看起来正在开发中,但我可以使用它成功连接和调试我的docker容器。 关于node.js-在VIM中调试NodejsV8,我们在StackOverflow上找到一个类似的问
我正在尝试在我的镜像中安装vim。我使用node作为基础图像:FROMnodeRUNapt-getupdate&apt-getinstallvim//morethings...我收到此错误:E:Unabletolocatepackagevim 最佳答案 您在RUN指令中只使用了一个与号(&),该指令在bash的后台运行命令。将其更改为包含两个&符号(&&)。另请注意-y(提示自动是)我已添加到apt-get语句中,没有它您的dockerbuild命令会失败:RUNapt-getupdate&&apt-getinstall-yvim