mac进行acm(C/C++)编程

在windows下我们往往使用CB(CodeBlocksks)进行acm的编程,不用建立工程,可以直接编译并运行,然后弹出黑框框,sublime也是这样,只要MinGW搞好就行

在ubuntu下我也常常使用CB,虽然有时候会出现小问题,但是还是非常稳定的

在mac os下就比较头疼,CB是远古版本了,而且在OSX下可能闪退,但是我们总不可能使用Xcode进行C/C++代码编写吧,比较麻烦

先后配置了sublime和VSCode,最终还是选择了VSCode,比较简单好用

去微软官网下载之后拖到应用程序打开,然后下载C/C++的MS插件,然后下载codeRun(因为task的体验不好,不能编译并运行)

编译和运行其实就是一行命令行的事("g++ A.cpp -std=c++11 -o A && ./A),我们配置codeRun到这样,然后加入一些人性化操作

这个就是setting.json,可以点击查看->命令面板->找到设置

 

{
    // 在终端中运行编译命令,否则我们无法与程序通过标准输入交互
    "code-runner.runInTerminal": true,
    // 运行代码之前清除之前的输出
    "code-runner.clearPreviousOutput": true,
    // 开启这个后在运行编译命令之前会自动 cd 至文件所在目录
    "code-runner.fileDirectoryAsCwd": true,
    // 这里只保留了 C 和 C++ 的编译命令,有需要其他语言的请自行添加
    "code-runner.executorMap": {
        "c": "gcc $fileName -o $fileNameWithoutExt && ./$fileNameWithoutExt",
        "cpp": "g++ $fileName -std=c++11 -o $fileNameWithoutExt && ./$fileNameWithoutExt",
    },
    // 运行代码后切换焦点至终端,方便直接输入测试数据
    "code-runner.preserveFocus": false,
    // 在运行代码之前保存文件
    "code-runner.saveFileBeforeRun": true,
    "C_Cpp.updateChannel": "Insiders",
    "editor.fontSize": 24,
    "C_Cpp.autoAddFileAssociations": false,
    "explorer.confirmDelete": false,
    "workbench.activityBar.visible": false,
    "http.proxySupport": "off",
    "workbench.sideBar.location": "left",
    "terminal.integrated.fontSize": 20,
    "editor.detectIndentation": true,
    "editor.insertSpaces": true,
    "editor.tabSize": 4,
    "files.autoSave": "afterDelay",
    "files.autoSaveDelay": 10000,
    "explorer.confirmDragAndDrop": false,
    "workbench.startupEditor": "newUntitledFile",
    "workbench.editorAssociations": [
        {
            "viewType": "jupyter.notebook.ipynb",
            "filenamePattern": "*.ipynb"
        }
    ],
    "terminal.integrated.tabs.enabled": true,
    "editor.codeActionsOnSave": null,
}
View Code

 

但是你会发现你可能没有一个正常的GCC编译器,如果有Xcode,那么将是clang,他不支持万能头文件,而且标准不太一样

这时候可以通过Homebrew安装GCC

如果没有安装Homebrew可以在终端执行这个指令,关于这个东西的介绍和使用可以到这里 https://brew.sh/index_zh-cn.html

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装gcc也很简单

brew install gcc

安装好了只要改一下~/bash_profile就好了,加入如下几行,因为我是安装的9,至于你是多少请随机应变

export PATH="/usr/local/Cellar/gcc/9.1.0/bin:$PATH"
alias gcc='gcc-9'
alias g++='g++-9'
alias c++='c++-9'

可以刷新下系统文件

1 source ~/.bash_profile

输入g++-9 -v(其实这个时候和g++ -v等效的)显示这一坨就说明你好了,你在命令行编译cpp文件就可以使用万能头文件了

sing built-in specs.
COLLECT_GCC=g++-9
COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc/9.1.0/libexec/gcc/x86_64-apple-darwin18/9.1.0/lto-wrapper
Target: x86_64-apple-darwin18
Configured with: ../configure --build=x86_64-apple-darwin18 --prefix=/usr/local/Cellar/gcc/9.1.0 --libdir=/usr/local/Cellar/gcc/9.1.0/lib/gcc/9 --disable-nls --enable-checking=release --enable-languages=c,c++,objc,obj-c++,fortran --program-suffix=-9 --with-gmp=/usr/local/opt/gmp --with-mpfr=/usr/local/opt/mpfr --with-mpc=/usr/local/opt/libmpc --with-isl=/usr/local/opt/isl --with-system-zlib --with-pkgversion='Homebrew GCC 9.1.0' --with-bugurl=https://github.com/Homebrew/homebrew-core/issues --disable-multilib --with-native-system-header-dir=/usr/include --with-sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
Thread model: posix
gcc version 9.1.0 (Homebrew GCC 9.1.0) 

然后VSC右键或者快捷键直接运行,就可以get到酸爽了

 使用gdb进行调试

方便的进行ifdef

cd /usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/x86_64-apple-darwin18/bits

然后修改stdc++.h
加上

#define bob
#define LOG(FMT...) fprintf(stderr, FMT)

然后我本机就可以开头

    #ifdef bob
    freopen("test.in","r",stdin);
    freopen("test.out","w",stdout);
    int nol_cl = clock();
    #endif

结尾

    #ifdef bob
    LOG("Time: %dms\n", int((clock() - nol_cl) / (double)CLOCKS_PER_SEC * 1000));
    #endif

快捷键

通用

⇧⌘P, F1 显示控制台

⌘P 快速打开,快速查找并进入文件

⇧⌘N 新建窗口(不是文件)

⌘W 关闭窗口

基本编辑

⌘X 删除整行 (不需要选中)

⌘C 复制整行 (不需要选中)

⌥↓ / ⌥↑ 上下移动整行

⇧⌥↓ / ⇧⌥↑ 复制整行,并粘贴到此行的上面/下面

⇧⌘K 删除行

⌘Enter / ⇧⌘Enter 插入行

⇧⌘\ 光标跳到对应的括号

⌘] / ⌘[ 缩进

Home / End 跳到行首行尾

⌘↑ / ⌘↓ 跳到首行或尾行

⇧⌘[ / ⇧⌘] 折叠和展开区域(验证了一下,这个组合键是左右切换文件)

⌘K ⌘[ / ⌘K ⌘] 折叠或展开选中的区域

⌘K ⌘0 / ⌘K ⌘J 折叠或展开所有的区域

⌘K ⌘C 加注释

⌘K ⌘U 删除注释

⌘/ 删除或注释

⇧⌥A 给选中的代码添加或删除注释(/* */)

⌥Z 切换自动换行

搜索和替换

⌘F 查找

⌥⌘F 替换

⌘G / ⇧⌘G 查找下一个或上一个

⌥Enter 选择所有的查找结果(不懂)

⌘D Add selection to next Find match

⌘K ⌘D Move last selection to next Find match

导航栏

⌘T 展示所有符号(显示本文件中的所有函数)

⌃G 去到指定行

⌘P 快速打开文件

⇧⌘O 跳到某个函数

⇧⌘M 显示报错面板

F8 / ⇧F8 跳到下一个/前一个错误或警告

⌃⇧Tab 导航所有打开的文件

⌃- / ⌃⇧- 最近查看的文件之间跳转

⌃⇧M 切换选项卡移动焦点(不懂)

编辑器管理

⌘W 关闭编辑器

⌘K F 关闭文件夹

⌘\ 拆分编辑器

⌘1 / ⌘2 / ⌘3 切换到第1,2,3个编辑器

⌘K ⌘← / ⌘K ⌘→ 切换编辑器组

⌘K ⇧⌘← / ⌘K ⇧⌘→ 编辑器左移右移

⌘K ← / ⌘K → 移动当前编辑器组

文件管理

⌘N 新建文件

⌘O 打开文件

⌘S 保存

⇧⌘S 另存为

⌥⌘S 保存所有文件

⌘W 关闭

⌘K ⌘W 关闭所有文件

⇧⌘T 重新打开关闭掉的文件

⌘K Enter 保持打开

⌃Tab / ⌃⇧Tab 打开下一个或前一个文件

⌘K P 复制当前文件的路径(不好使啊)

⌘K R 在浏览器中显示当前文件

⌘K O 在新窗口中显示当前文件

 

posted @ 2019-07-01 14:20  暴力都不会的蒟蒻  阅读(1658)  评论(0编辑  收藏  举报