noi linux 2.0 體驗

Cristime發表於2021-08-08

一、起因

下午,我開啟 noi 官網準備報名 csp j/s,一看官網展板:“noi linux 2.0 釋出” 我就興奮了起來。(9 月 1 日起開始使用,
也就意味著 csp j/s 使用 noi linux 2.0)

flndoj.png

啪的一下很快啊,我點選了這個圖片連結。

flnOTH.png

一看這個配置:Ubuntu 20.04.1、vscode、sublime、code::blocks、gcc-9,
同時也去除了辣雞 IDE(GUIDE)。
相比於之前的 noi linux,這簡直是天堂啊!

回想去年參加 csp,使用的是老版的 noi linux,回想起來真是一把辛酸淚啊:那個老舊的 Ubuntu 14.04、莫名其妙卡死的桌面、
不能稱之為 IDE 的 IDE(GUIDE)、gdb 崩潰......我當時用的 emacs 和 vim(emacs稍微好一些,但是我比較習慣 vim),比賽前
還特意查了 vim 的用法、背了配置檔案。真是難以言表。

難道 CCF 終於瞭解到 OIer 們的痛點了嗎?他終於醒悟了嗎?

二、安裝系統

抱著試試看的心態,我下載了 noi linux 2.0 的 iso 檔案(3.4G),使用 VirtualBox 安裝了虛擬機器(vmware 我感覺不好用),
當然也可以實體機安裝雙系統,網上教程一大堆,自行搜尋。

flnawQ.png

這裡注意,新的 Ubuntu 20.04 是 64 位系統(32位的可以歇歇了),RAM 最少需要開 2048 MB(否則系統無法啟動)。

安裝系統就一路預設(一開始語言選的是中文,後來我後悔了,最好選英文),鍵盤佈局選擇 Chinese - Chinese 就行。

大概 20 分鐘左右系統安裝完成,重啟後彈出虛擬光碟機進入系統。

三、使用系統

整個系統給我第一眼的印象感覺還行(可以在桌面右鍵點選
更換桌布),但是系統似乎沒有網路模組,所以無法聯網。

fln0Fs.png

點選左下角的點,開啟 VS Code、Terminal、Sublime Text、Code::Blocks。我寫了一份測試程式碼(本人 C++ 黨)。

flnBYn.png

#include <cstdio>
#include <cctype>
#include <vector>
using namespace std;

#define reg register

// 快讀模板
int readInt() {
    reg int x = 0, f = 1; char ch = getchar();
    while (!isdigit(ch)) { if (ch == '-') f = -1; ch = getchar(); }
    while (isdigit(ch)) { x = x * 10 + ch - 48; ch = getchar(); }
    return x * f;
}

int main(void) {
    freopen("test.in", "r", stdin);
    freopen("test.out", "w", stdout);

    vector<int> v;
    int n = readInt();
    for (reg int i = 0; i < n; i++) v.push_back(read());
    for (auto el& : v) printf("%d ", el);
    puts("");

    fclose(stdin); fclose(stdout);
    return 0;
}

儲存在 ~/test.cpp

同時建立 ~/test.in 並輸入以下內容

5
1 2 3 4 5

在終端中輸入

$ g++ test.cpp -o test -std=c++11 -O2  # C++11 和 O2 優化
$ ./test

開啟 ~/test.out 檢視,輸出為:

1 2 3 4 5

VS Code、Sublime Text、Code::Blocks 我都進行了測試,並得出以下結論:

  • VS Code 預設安裝了 C/C++、Python、Pylance、Jupyter 外掛,但是由於 C/C++ 外掛安裝後需要從 github 下載依賴檔案,而系統又無法聯網,所以 C/C++ 外掛基本無用,這也導致了 VS Code 在 noi linux 下尷尬的境地。(但是不得不說 VS Code 在其他地方非常好用,平常用來寫程式碼非常方便,同時跨平臺支援,上手難度非常低,想使用的話教程網上都有)所以在這裡不推薦使用 VS Code。
  • Sublime Text 是另一款輕量化編輯器,和 VS Code 一樣顏值高,在 noi linux 下有 C++ 的語法提示,同時支援單檔案編譯,其萬能搜尋欄(Ctrl+Shift+P)也是非常順手。推薦使用 Sublime Text。
  • Code::Blocks 是一款 C/C++ IDE(整合開發環境)。同時可以支援 C++ 語法提示,支援單檔案編譯,但是顏值非常樸素(與 Dev-C++ 類似)。Code::Blocks 跨平臺支援,使用難度低,可以平時在其他系統使用。推薦 Code::Blocks。
  • Vim/Emacs 上手難度較高,簡潔高效,但是在不熟悉其快捷鍵的時候效率非常低。所以這裡並未使用 Vim/Emacs 進行測試。

建議平時刷題的時候使用 Code::Blocks,可以拋棄老舊的 Dev-C++ 了

小提示:Linux 的命令列非常高效,建議熟練掌握其常見命令,有時甚至在比賽時可以救你一命(親身經歷)

四、總結

noi linux 2.0 相比舊版本做了很大的改動,其使用更加方便,更加適合 OIer。

程式設計工具建議使用 Code::Blocks 和 Sublime Text。兩者都有較好的語法提示和單檔案編譯功能。

CCF 終於開竅了!

相關文章