日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Atom | 用最酷的編輯器 寫最美的代碼

 樹悲風 2019-11-16

代碼如詩。

Code is poetry.

Vim - the ubiquitous text editor

Vim - the ubiquitous text editor

寫代碼本應(yīng)該是很享受的事情,我們有極客高效的 Vim,簡約美麗的 Sublime Text,從小至最為純粹的編輯器,到大至包羅萬物的 IDE。一個好的、美觀的、高效的代碼編寫環(huán)境著實能夠提高一個人的寫作、創(chuàng)作欲望。試想一個人把 VC 6.0 放在你的面前,黑底白字、沒有高亮、沒有顏色,有誰會愛上 C / C++?如果有人在 2018 年向你推薦 1998 年的 IDE,那么你覺得這個人的腦子該如何拯救?

null

生命不息,折騰不止。

經(jīng)過近 2 年的摸索,從高中的 Dev C++ 到大一開學時的 Codeblock 與 Sublime Text,到現(xiàn)如今的 Atom,我想總結(jié)一下:一個高效美觀、能激發(fā)一個人創(chuàng)作欲望的代碼編寫環(huán)境到底是怎樣配置出來的。以拯救那些大一剛剛開學,即將或是已經(jīng)被 C 語言 / Dev C++ / VC 6.0 荼毒半年有余的同學們。

壹 → Atom

Atom:A hackable text editor for the 21st Century

Atom

Atom

首先,介紹工具:Atom 文本編輯器,由 Github 出品的基于 Electron / Node.js 的半開源文本編輯器。官網(wǎng)位于 -> https:///

為什么我從一眾優(yōu)秀的文本編輯器中選擇了 Atom,而不是 Vim,又放棄了我用了一年多的 Sublime Text?

開源。GitHub 上的大佬叫他是 Hackable 就不是吹的,配置文件是 cson,樣式文件是 CSS 和 Less,所以理論上你可以把 Atom 配置成任何你想要的樣子。

開箱即用。所謂的 Out-Of-The-Box Experience 說的就是 Atom。自帶 4 組 UI 主題、4 組 Syntax 主題,自帶 Markdown 渲染器、代碼美化插件等等。

簡單設(shè)置自帶圖形界面。無疑對我們這些 Spicy Chicken 很用戶友好了,一些簡單的設(shè)置是直接用下拉菜單的形式配置的,不需要打開諸如 vimrc 和 User.sublime-settings 然后費盡心思的直接改代碼。

又為什么我選擇了 Atom 而不是 IDE?

我只能說,就我們這些 Spicy Chicken 來說,寫的代碼還輪不到 IDE 的事情,畢竟剛開始的我們,C / C++ 一個項目不超過兩個文件,一個文件不超過 500 行代碼,用 IDE 來 cmake 一波豈不是很虧。因此我在 IDE 和輕量級可拓展的文本編輯器中選擇了后者,又在文本編輯器中選擇了半開源、可 Hack 的 Atom。以上。

貳 → 配置 Atom 成為寫 C/C++ 的「IDE」

文本編輯器的最大的優(yōu)勢在于你可以通過開源社區(qū)下載,甚至自己編譯開發(fā)「插件 - Plugin」來完善它,實現(xiàn)「開箱即用」中所沒有提供的功能。

1. 寫代碼的時候

一個有情懷的 IDE 基本都會實現(xiàn)代碼自動補全,代碼實時編譯糾錯,以及代碼高亮(為了美麗)和代碼自動整理。很可惜,Dev C++ 沒有,Codeblock 也沒有。因此,我們要完善我們嶄新的 Atom 來實現(xiàn)以上功能。

代碼自動補全

Plugin: autocomplete-clang

null

代碼實時編譯

Plugins: linter, linter-clang, linter-ui-default

null

代碼高亮

Themes,這里的問題主要在于個人審美,我相信一定有一個美麗的 UI 和配套的 Syntax 主題打動你。

null

代碼自動整理

Plugin: Atom-beautify

null

2. 寫完代碼之后

一個能正常操作的 IDE 都能通過,或是綠色箭頭,或是組合鍵 Fn + F5 之類的方式編譯運行。

在 Atom 里我們也可以實現(xiàn):

編譯運行 C/C++

一鍵編譯:script

null

插件 script 實際上是通過識別文件類型來執(zhí)行對應(yīng)的命令編譯源代碼。比如 C++ 的編譯命令實際上是 [Command: bash -c 'xcrun clang++ -std=c++14 -Wall -include stdio.h -fcolor-diagnostics -include iostream '$Path_To_CPP_File$/Test.cpp' -o /tmp/cpp.out && /tmp/cpp.out'],通過快捷鍵 ? + I 直接運行指令來編譯。

null

調(diào)出終端:platform-ide-terminal

null

如果不滿意 script 一鍵編譯運行的話,可以通過這個插件喚出終端,這樣直接了當用 g++ -o $File_Name$ $File_Name.cpp$ 這一命令來運行,這時候程序也支持輸入,與 Windows 下 Dev C++ 中默認運行調(diào)出 Command Prompt 小黑框一般道理。同時這樣也方便用 gdb 來進行調(diào)試。

3. 一個有情懷的工作流開發(fā)者的加成

在 ACM 中,每段代碼都是有標準輸入和標準輸出的。在 C / C++ 中我們可以通過這樣的代碼片段來讀取輸入:in.txt 并將程序輸出、程序運行時間寫入文件:out.txt。在保證 C / C++ 源代碼和兩個 TXT 文件再同一個文件目錄下,這段代碼是這樣的:

#ifdef SUBMITfreopen('in.txt', 'r', stdin);freopen('out.txt', 'w', stdout);long _begin_time = clock();#endif/* your code here */#ifdef SUBMITlong _end_time = clock();printf('time = %ld ms', _end_time - _begin_time);#endif

同時要在頭文件定義時加入:#define SUBMIT //本地運行這行留下,提交代碼直接注釋掉

這樣在 Atom 中就可以形成工作流:代碼區(qū)域 - 編寫 → 輸入內(nèi)容 in.txt → 編譯代碼 → 查看輸出文件內(nèi)容、運行時間 out.txt

null

直觀純粹,效率優(yōu)先。

null

最后,上成果。這樣的 Atom 配置在寫 C / C++ 基礎(chǔ)程序的時候,基本實現(xiàn)了:

Linter: 基于 clang 的實時編譯

代碼高亮與自動補全

代碼自動優(yōu)化美化

一鍵編譯運行

終端調(diào)試

我相信,這樣的配置不僅完美的適合小型項目的編寫,還能極大的提升對代碼的敏感和熱愛。至少,這種解決方式,比 Dev C++ 和 VC 6.0 體面,也比 Visual Studio 和 CLion 純粹、輕量。

感謝閱讀。

鞠躬。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多