• VSCode配置C++编写环境


    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/desert187/article/details/51025786
    VSCode跟Sublime很像,继承了Sublime的很多优点,包括编辑界面的鼠标多选操作。但是Sublime在C/C++方面比较欠缺(Clang插件在2.0以后不再维护),而VSCode是这方面的强者。
    同样的,VSCode默认的代码索引和补全都仅限于已打开的文档,幸运的是VSCode 0.10版本以后开始支持插件功能。其中较好的插件是C++ Intellisense。
    您可以在VSCode的编辑界面点击快捷键Ctrl+P呼出命令栏,然后输入
    ”ext install c++”+空格
    来查找C++ Intellisense插件,点击右侧的下载按钮,插件会自动安装并提示重启VScode。
    C++ Intellisense插件需要GNU Global的支持,这是一个类似CTag的,能够创建用于实现索引和自动补全功能所需的Tag的程序。可以到 http://adoxa.altervista.org/global/ 下载Windows版本的GNU Global,下载解压后,配置Win的系统PATH到GNU Global目录的/bin目录下,这个目录下包含gtag.exe等二进制文件。

    注意,C++ Intellisense只支持6.5以上版本的GNU Global。

    安装完成后找个下面这个文件:

     linux下: ~/.vscode/extensions/austin.code-gnu-global-0.2.2/out/src/features/referenceProvider.js

     windows下: /c/Users/Administrator/.vscode/extensions/austin.code-gnu-global-0.2.2/out/src/features

        我的是Administrator用户,所以在这个目录,请自行调整用户目录;

     GlobalReferenceProvider.prototype.provideReferences = function (document, position, options, token) {
              console.log(position);
              var word = document.getText(document.getWordRangeAtPosition(position)).split(/ ? /)[0];
              var self = this;
              return this._global.run(['--encode-path', '" "', '-rsax', word])
                  .then(function (output) {
                  console.log(output);
                 var bucket = new Array();

    将 “-rax” 修改为 “-rsax” 保存一下。

    到源代码目录下, 运行gtags 命令。

    重新打开一个C/C++源码目录,按Ctrl键并使鼠标指向某个函数,您将看到这个函数的提示信息,您还可以跳转到定义、查找引用(shift+F12)、自动补全、列出符号等(ctrl+P,输入@)。

    Go to definition

    Auto completion

    Find references



    List symbols


    记住,在修改完代码后需要重新在源码工程目录下键入“gtags”命令来重新建立Tags。如果觉得多开个cmd窗口很麻烦,可以安装VSCode的Shll插件。

    这些插件都有很详细的帮助,若需要查看帮助说明,在点击Ctrl+P快捷键后输入“ext”+空格,此时顶部命令栏将显示已安装的插件,点击右侧的“README”按钮即可连接到插件的官网帮助文档页面。
    ————————————————
    版权声明:本文为CSDN博主「lionchan187」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/desert187/article/details/51025786

  • 相关阅读:
    LeetCode 382. Linked List Random Node
    LeetCode 398. Random Pick Index
    LeetCode 1002. Find Common Characters
    LeetCode 498. Diagonal Traverse
    LeetCode 825. Friends Of Appropriate Ages
    LeetCode 824. Goat Latin
    LeetCode 896. Monotonic Array
    LeetCode 987. Vertical Order Traversal of a Binary Tree
    LeetCode 689. Maximum Sum of 3 Non-Overlapping Subarrays
    LeetCode 636. Exclusive Time of Functions
  • 原文地址:https://www.cnblogs.com/xiangleili/p/11410689.html
Copyright © 2020-2023  润新知