致萌新與不會用 NOI Linux 的 OIer


全文絕大部分轉載自:這篇好文章啊

致CSP萌新/不會使用NOI LINUX的人群

1:GUIDE

一句話評價:GUIDE就是個辣雞

本意是CCF為了刁難照顧Linux小白而安裝的圖形化IDE,上手比較容易 但是用十五分鍾你就會發現這是什么辣雞

請頭鐵的同學們考場/試機時自行摸索

良言:能不用GUIDE就不用,自帶編譯意義不明,調試會導致IDE崩潰

2:Gedit

原文

一句話評價:如同Notepad++般的存在

Ubuntu自帶的神奇軟件,形似記事本但是比記事本高到哪里去

直接新建一個文件,而后把文件命名為 xxx.cpp 即可

P.S:這里推薦保存在主文件夾(/home/)下,便於編譯操作

圖片1

Gedit是支持語句高亮的,在右下角可以選擇語言類型 跟Md異曲同工的高亮

圖片2

總之,是一個體驗良好,很超神的存在

為了尊重作者,以上是原文部分全部保留不動,以下是我的增加部分。

其實 Gedit 是一個很好用的編輯器。(確實比 Windows 下的筆記本好用幾百倍)

但是我認為作者並沒有做過多的介紹,所以決定自己重申一下。

打開

原文是說直接寫 文件名.cpp 但是這樣就沒有辦法進行配置了,所以正解是先保持無名文件,打開后進行配置后再命名。

具體圖片就是醬紫:

NOI Linux Gedit 示范2.png

在“編輯”中找到“首選項”,然后就可以自己亂搞了。

NOI Linux Gedit 示范1.png

NOI Linux Gedit 示范3.png

可以調大字體,自定義代碼高亮,還可以自動縮進 + 顯示行號,反正非常好用就對了。

編譯運行

編譯方法的話,可以看下面 Vim 的編譯方法,用命令行解決就是了。

以上是我的增加部分,下面是原文

3、Vim

一句話評價:燈光都打起來!最強者出現了!

Vim是(大部分)Ubuntu內置的一個奇妙東西

其實Vim這個東西十分強大,功能比你想象的要多很多,這里只講最最最基礎的操作,如果想要了解詳細,可以移步這里

Vim這個東西有點奇妙,因為它是運行在終端里的 因此也顯得高大上

3-1:這東西咋開啊

方法1:在Linux左上角“搜索我的計算機里”,搜索“Vim”即可,此時會顯示Vim的welcome畫面

圖片3

圖片4

方法2:使用Ctrl + Alt + T 打開終端,直接輸入 vi ./xxx.cpp 使用Vim打開文件,此時Vim顯示的是文件內容(如果沒有這個文件,Vim會自動新建一個文件,上面的語句中, vi 表示調用vim, ./ 是這個文件的路徑(本文中為Home文件夾), xxx.cpp 是文件名

圖片5

圖片6

3-2:這東西咋用啊

使用Vim打開了文件,我們發現此時我們無法對文件進行操作

不要慌,Vim默認開啟時是“命令”模式,是需要輸入指令來操作的

我們按下 i ,切換到插入模式,就可以愉快的寫代碼了

圖片7

看,和Gedit一樣有語句高光,驚不驚喜

需要注意的是,Vim中的光標只能靠鍵盤上的上下左右鍵和Home/End等鍵移動,不能靠鼠標

寫完代碼了,我們需要保存一下

那么問題來了,怎么保存呢

首先,我們按下 Esc(敲ESC三個字母的可以關掉blog直接退役了),返回命令模式

然后,我們在命令模式下輸入 :wq (均為小寫英文字符),就可以保存文件並直接回到終端啦

圖片8

圖片9

語句解釋: : 的作用是一次輸入多條指令,上文中我們未使用":"直接按"i"便是立刻執行命令,這里便會等待你一次輸入全部命令回車后依次執行; w 是Vim的保存命令 (不是s嗎)q 是退出指令

4、編譯與運行

代碼寫完了,接下來我們就是要來運行了

編譯運行其實也很簡單,本質上跟dev C++是一樣的

以上文代碼為例,首先按下 Ctrl + Alt + T 召喚出 終端,在終端里敲下

gcc ./xxx.cpp -o ./xxx -g 即可編譯完成

如果gcc頻繁編譯失敗,又找不出問題,可以嘗試把 gcc 換成 g++

圖片10

語句解釋:"gcc"是調用gcc編譯器(類似vi語句), ./xxx.cpp 是上文代碼的路徑, -o 是向gcc傳遞編譯指令(平時你用的Dev C++里編譯也是這一步只是加上了各種后綴,另外注意一定要加上那個"-"號),./xxx 是編譯過的可執行程序的輸出路徑(這個記好一會運行要用,同樣建議生成至Home文件夾), -g 是后綴,表示生成調試信息,OI中常用的后綴大概只有 -O2 (吸氧), -Wall (顯示警告信息)和 -g 了,如果你不使用GDB調試程序,可以不添加這個后綴

運行更加簡單了,在終端里直接輸入

./xxx 即可運行程序,前面什么都不用加,然后我們就可以運行程序,程序的輸入輸出和你平時在Windows下使用cmd運行是一模一樣的,當然,也可以重定向到文件

圖片11

數據:P1908樣例

筆者的程序有使用fread的快讀,必須使用文件讀入所以出鍋了

假裝有輸出

順便教給大家,圖片里的^C就是 Ctrl + C ,意義為強行kill終端當前運行的任務,故在使用終端測試時一定要手打數據或右鍵粘貼,千萬不要Ctrl C 再 Ctrl V 結果練程序怎么死的都不知道,終端跟cmd一樣不支持 Ctrl + V 粘貼,想要在終端內進行復制粘貼操作,可以使用 Ctrl + Shift + CCtrl + Shift + V 操作

5、調試

太菜了不會GDB

想學GDB可以參考這里

還有感謝 Ancker-0 Dalao 推薦的這里

6、CSP競賽中編寫代碼的經常性注意事項

由於CSP的評測是在Linux的環境下完成的,因此有一些注意事項需要注意:

1、盡量不要使用 gets() 語句讀取一行,因為這些函數使用換行符來判斷行結束,Windows下換行是\r\n,而Linux下換行是\n,假設某題的數據是在Windows下生成的,那么這道題的換行符就是\r\n,最終比賽時的代碼是在Linux下編譯的,讀取的換行符是\n,這樣就會導致讀入錯誤

kkksc03評論:其實不使用gets()的原因主要還是潛在的溢出風險。

2、評測環境為Linux64位,因此請注意指針變量占用的空間是 8 字節,注意計算內存,避免MLE

3、在使用long long 型int時請記得使用 %lld 而非WIndows下的%I64d

4、忌使用 __ (雙下划線)開頭的函數如pbds,CSP是禁止此類函數的使用的,使用此類函數可能導致你的代碼CE或取消題目成績

7、總結

總結一下CSP考試中最常用的計算機指令(排名不分先后)

Ctrl + Alt + T     //開啟終端

Ctrl + C     //強行kill當前運行的任務(終端內適用)

vi ./xxx.cpp     //使用Vim打開或創建文件(終端內適用)
---^^^^^^^^^
      路徑

Vim內:
i     //寫入模式
Esc     //返回命令模式
:     //依次執行多條命令
w     //保存
q     //退出
(終端運行Vim時適用)

gcc ./xxx.cpp -o ./xxx     //編譯程序(終端內適用)
----^^^^^^^^^----^^^^^
     輸入路徑    輸出路徑

./xxx     //運行程序(終端內適用)
^^^^^
程序路徑

ex1:如果運行程序時提示權限不足,請嘗試在運行語句前加sudo。

ex2:NOI Linux默認用戶為noilinux,密碼為123456。

ex3:NOI Linux鏡像下載地址

完結撒花。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM