在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,
但是你會發現你可能沒有一個正常的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到酸爽了

方便的進行ifdef
cd /usr/local/Cellar/gcc/9.2.0_3/include/c++/9.2.0/x86_64-apple-darwin19/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 在新窗口中顯示當前文件
