如何在 mac 電腦上輕量化地寫C

有很多人用mac電腦初學C,動不動就下幾十GByte的IDE,我覺得完全沒有必要。我特別想把一些比較小眾的輕量化方法分享給大家(這是我在知乎:如何在mac電腦上寫C?的回答總結)

鏡像問題:

如何在 mac 電腦上寫 C??

www.zhihu.com圖標

擴展問題:

惰惰猴:在MacOS上用VSCode和Thonny寫Python?

zhuanlan.zhihu.com圖標

第一種方法推薦:

MacOS的內核是BSDUnix,可以看作自帶gcc編譯器(相當於clang別名),實際上MacOS操作系統是可以直接編譯C語言的。

首先要查看我們所使用的MacOS是否自帶了gcc(相當於clang別名)

gcc -v

如上圖所示,顯示了clang版本,就說明當前使用的MacOS自帶了gcc(clang別名)我們寫完程序,可以直接編譯。

但是,MacOS10.12以後蘋果不再自帶gcc(相當於clang別名),我們可以在聯網狀態下用一條命令搞定:

xcode-select --install

如上圖,在終端輸入完成後按回車,根據提示操作即可

當我們完成gcc(相當於clang別名)安裝後,就可以直接在終端下編譯C了。

這時,我們可以有多種選擇:

我們可以用vim寫,也可以弄個圖形化的文本編輯器寫,比如:TextWranger(類似於windows的Notepad++)。寫完後直接在終端中完成編譯即可。

舉個用vim寫的例子:

cd ~/Documents/Program/C_text/playwithC/

vim Choose.c

按i進入插入模式,寫完後按esc 再輸入 :x保存、退出vim

ls

用ls命令查看寫完後的Choose.c源代碼是否保存在當前目錄下。如果在,我們就可以用Mac OS自帶的 gcc(clang別名)直接編譯了。

gcc Choose.c -o Choose.o

如果什麼都沒提示,那就表示編譯成功(若有報錯,請按照提示,自行修改代碼)

編譯成功後,再次敲ls查看當前目錄下是否存在Choose.o,如果有,我們就可以./Choose.o運行該程序了。

./Choose.o

這裡我們要明確一個概念,Unix和類Unix(GNU+Linux)不是靠後綴來區分可執行程序的(比如windows的.exe)Unix和類Unix是靠顏色來區分的,綠色就是可執行程序。蘋果為了淡化自家操作系統的Unix味道,把MacOS的終端默認調成了黑白(這點比較怪wu異chi)

其實,終端和vim要達到我圖片上的色彩效果,需要修改家目錄的bash_profile配置文件和vimrc配置文件(需要一點類Unix的知識門檻,如果有興趣,以後我會分享)

我為什麼要寫這返祖的第一種方法呢?存粹是希望玩MacOS(Unix)的人能了解:MacOS就是Unix。而且Unix和類Unix(GNU+Linux)內核都是C語言寫的。它們本來就自帶C語言編譯工具,是可以直接編譯C的(這點和windows的區別很大)也可以多一種除IDE之外的小眾選擇。

是的,要玩轉第一種方法,必須要熟悉類Unix命令行操作和基本的vim命令,對初學者來說門檻比較陡峭(我不是用vim來勸退的)

第二種方法推薦:

呵呵呵,肯定有一大波人會嫌棄第一種方法。

如果不會弄vim的配置文件,也不會弄終端的配置文件。那麼,在用vim的時候,是達不到我上圖效果的。行號沒有、代碼顏色不高亮、自動補全不方便等等等......

別急呀!!我再給大夥推薦第二種方法。

沒有錯,就是MacOS系統下的輕量級測試工具CodeRunner和微軟家的開源工具VSCode。

(1)CodeRunner

因為Mac版的coderunner3很簡單,直接寫了就可以編譯運行,所以就不寫教程了。只要打開App Store,購買安裝即可。

重點說說微軟家的VSCode。

錯,請叫我的全名:Visual Studio Code。CNU那群老鬼才會叫我VSCode!!

(2)Visual Studio Code

大名鼎鼎的微軟王牌:開源、跨平台、免費、小巧、方便、支持多語言、語法高亮、自動補全、智能縮進、全能編譯、解釋運行的Visual Studio Code。打開後是這個樣子的:

可是,VSCode必須要配合相關插件,才能具備IDE的顏值,下面給大家推薦幾個寫C必須的插件:

第一個是:chinese (simplified)language Park for Visual Stutio Code

這個插件可以把Visual Studio Code的菜單由英文轉成中文,對新手特別友好。如下圖操作即可:

第二個插件是:code runner,這是Visual Studio Code寫完C後能直接編譯運行的基礎。按照下圖步驟安裝即可:

這兩個插件安裝好後,基本就成功一半了。要想全部成功,必須得配置一下code runner這個插件(如果不配置code runner,寫的程序,將會是只讀。配置思路:需要把coderunner和終端綁在一起,利用MacOS終端自身的編譯器clang來編譯運行C,若不確定有沒有clang,可以打開MacOS終端,輸入gcc -v查看,MacOS10.13以前的版本都會自帶,MacOS10.13和10.14請按照第一種方法所介紹的內容,自行安裝)

xcode-select --install

好了,配置coderunner的步驟如下圖:

點設置後,在搜索欄里搜 code runner:Run In Terminal,在前面打勾即可,如下圖:

這下我們就配置完了。

來,寫個C玩玩。

注意,每次寫完代碼後,運行之前,都要按Command + S 保存一下。如果不保存,代碼是運行不起來的(嫌煩?可以在VSCode文件菜單中勾選自動保存)

代碼運行效果請連續收看下圖:

只想玩玩C,有這幾個基礎插件就夠了。不過,我再推薦幾款必備插件,可以把VSCode打扮得更靚,不僅自動補全、關鍵字聯想、還能區分括弧、縮進......

氣質直逼IDE啊,有沒有?更關鍵的是,VSCode只是輕量級地使用Mac的硬體資源。

好了,VSCode的必裝插件推薦如下:

Anaconda

Bracket pair color

C/C++

C++

C++Intellisense

Code runner

Output color

Python

Vscode-icons

大家根據需要自行選擇吧。更多插件,可以自行通過搜索引擎了解。

來看看C和Python的高顏值代碼效果:

嗯,這裡是說C,不過看看Python也不賴。

=================附贈:VIM 大法==================

vi/vim 的使用

基本上 vi/vim 共分為三種模式,分別是命令模式(Command mode)插入模式(Insert mode)底線命令模式(Last line mode)。 這三種模式的作用分別是:

命令模式:

用戶剛剛啟動 vi/vim,便進入了命令模式。

此狀態下敲擊鍵盤動作會被Vim識別為命令,而非輸入字元。比如我們此時按下i,並不會輸入一個字元,i被當作了一個命令。

以下是常用的幾個命令:

i 切換到插入模式,以輸入字元。

x 刪除當前游標所在處的字元。

: 切換到底線命令模式,以在最底一行輸入命令。

若想要編輯文本:啟動Vim,進入了命令模式,按下i,切換到輸入模式。

命令模式只有一些最基本的命令,因此仍要依靠底線命令模式輸入更多命令。

輸入模式

在命令模式下按下i就進入了輸入模式。

在輸入模式中,可以使用以下按鍵:

字元按鍵以及Shift組合,輸入字元

ENTER,回車鍵,換行

BACK SPACE,退格鍵,刪除游標前一個字元

DEL,刪除鍵,刪除游標後一個字元

方向鍵,在文本中移動游標

HOME/END,移動游標到行首/行尾

Page Up/Page Down,上/下翻頁

Insert,切換游標為輸入/替換模式,游標將變成豎線/下劃線

ESC,退出輸入模式,切換到命令模式

底線命令模式

在命令模式下按下:(英文冒號)就進入了底線命令模式。

底線命令模式可以輸入單個或多個字元的命令,可用的命令非常多。

在底線命令模式中,基本的命令有(已經省略了冒號):

q 退出程序

w 保存文件

按ESC鍵可隨時退出底線命令模式。

簡單的說,我們可以將這三個模式想成下圖來表示:

vi/vim 使用實例

使用 vi/vim 進入一般模式

如果你想要使用 vi 來建立一個名為 test.txt 的文件時,你可以這樣做:

$ vi runoob.txt

直接輸入 vi 文件名 就能夠進入 vi 的一般模式了。請注意,記得 vi 後面一定要加文件名,不管該文件存在與否!

按下 i 進入輸入模式(也稱為編輯模式),開始編輯文字

在一般模式之中,只要按下 i, o, a 等字元就可以進入輸入模式了!

在編輯模式當中,你可以發現在左下角狀態欄中會出現 –INSERT- 的字樣,那就是可以輸入任意字元的提示。

這個時候,鍵盤上除了 Esc 這個按鍵之外,其他的按鍵都可以視作為一般的輸入按鈕了,所以你可以進行任何的編輯。

按下 ESC 按鈕回到一般模式

好了,假設我已經按照上面的樣式給他編輯完畢了,那麼應該要如何退出呢?是的!沒錯!就是給他按下 Esc 這個按鈕即可!馬上你就會發現畫面左下角的 – INSERT – 不見了!

在一般模式中按下 :wq 或者:x儲存後離開 vi

OK,我們要存檔了,存檔並離開的指令很簡單,輸入 :wq 或者:x即可保存離開!

附錄一:關於什麼是code-select --install 命令

xcode-select --install是蘋果提供的Xcode command line的快捷安裝命令。Xcode command line並不是Xcode IDE,它比Xcode小的多,最新版的只有194.3MB,除了在終端中使用xcode-select --install 命令快捷安裝,也可以自行在蘋果開發者頁面下載dmg安裝包。

Sign In - Apple?

developer.apple.com

截圖如下

對Xcode Command Line的簡單介紹如下:

1、Mac系統無需Xcode也可以安裝Command Line Tools

2、從MacOS 10.10 Yosemite開始,Command Line Tools就可以單獨安裝了,無需像之前一樣必須先安裝Xcode才能安裝Command Line Tools(這讓許多不搞開發的用戶方便了許多。改善了之前僅僅為了運行一條命令,卻需要體態龐大的Xcode,時不時還要更新的麻煩)

附錄二:關於MacOS終端里GCC命令的由來(不要混淆GNU的GCC和LLVM的Clang)

1、GNU是不讓蘋果用GCC編譯器的,MacOS用的是LLVM的Clang,由於MacOS用的是BSDUnix內核,為了照顧用戶習慣,在MacOS的終端命令中,安排了一個GCC命令(存粹是情懷),實際上MacOS的Clang二進位文件和GCC二進位文件是一樣的。

2、MacOS的GCC命令實際上調用了Library庫下的Clang,從理解上講類似於Clang的別名(但是,別名的提法是不準確、不嚴謹的,容易誤導大家)

3、MacOS系統Library庫下的Clang實際上是Command Line Tools工具集安裝好後,添加到Library庫中的。路徑是/Library/Developer/CommandLineTools/usr/bin

clang -v

gcc -v

cd /Library/Developer/CommandLineTools/usr/bin

ls

ls -l | grep gcc

ls -l | grep clang

我們可以在來仿照gcc Choose.c -o Choose.o命令來寫一條clang Choose.c -o Choose.o,實際上效果是一樣的。

clang Choose.c -o Choose.o

首先我先刪除目錄下gcc命令編譯出來的可執行程序Choose和Choose.o,然後我在用clang Choose.c -o Choose.o編譯。效果如下:

最後來看運行效果:

OK,就分享到這裡,謝謝收看。

鏡像問題:

如何在 mac 電腦上寫 C??

www.zhihu.com圖標

擴展問題:

惰惰猴:在MacOS上用VSCode和Thonny寫Python?

zhuanlan.zhihu.com圖標
推薦閱讀:

TAG:macOS | C/C | C(編程語言) |