Vi三種模式詳解
命令行模式 (command mode/一般模式)
任何時候,不管用戶處於何種模式,只要按一下“ESC”鍵,即可使Vi進入命令行模式;我們在shell環境(提示符為$)下輸入啟動Vi命令,進入編輯器時,也是處於該模式下。
在該模式下,用戶可以輸入各種合法的Vi命令,用於管理自己的文檔。此時從鍵盤上輸入的任何字符都被當做編輯命令來解釋,若輸入的字符是合法的Vi命令,則Vi在接受用戶命令之后完成相應的動作。但需注意的是,所輸入的命令並不在屏幕上顯示出來。若輸入的字符不是Vi的合法命令,Vi會響鈴報警。
文本輸入模式 (input mode/編輯模式)
在命令模式下輸入插入命令i(insert)、附加命令a (append)、打開命令o(open)、修改命令c(change)、取代命令r或替換命令s都可以進入文本輸入模式。在該模式下,用戶輸入的任何字符都被Vi當做文件內容保存起來,並將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按"ESC"鍵即可。
末行模式 (last line mode/指令列命令模式)
末行模式也稱ex轉義模式。
Vi和Ex編輯器的功能是相同的,二者主要區別是用戶界面。在Vi中,命令通常是單個鍵,例如i、a、o等;而在Ex中,命令是以按回車鍵結束的正文行。Vi有一個專門的“轉義”命令,可訪問很多面向行的Ex命令。在命令模式下,用戶按“:”鍵即可進入末行模式下,此時Vi會在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個“:”作為末行模式的提示符,等待用戶輸入命令。多數文件管理命令都是在此模式下執行的(如把編輯緩沖區的內容寫到文件中等)。末行命令執行完后,Vi自動回到命令模式。
1.編譯(compile):指用編譯器(compiler)將源代碼(source code)生成二進制目標文件(object file),在Windows下也就是 .obj 文件,UNIX下是 .o 文件。編譯時,編譯器需要的是語法的正確,函數與變量的聲明的正確,編譯器只檢測程序語法,和函數、變量是否被聲明,函數並不需要被定義。
UNIX下g++的語法為:
g++ -c file.cpp
-c 是compile的意思,此命令將會生成 file.o 的目標文件。
2.鏈接(link):找到所要用到函數所在的目標文件,並把它們鏈接在一起合成為可執行文件(executable file)。鏈接時,要確保編譯器能找到所有被用到了的函數所在的目標文件。
g++ file1.o file2.o -o program.exe
-o 是指定生成的可執行文件名稱(output)。若不給出,默認的名稱為 a.out
上述兩部通常也可以合在一起完成:
g++ file1.cpp file2.cpp -o program.exe
這完全等同於上面兩步的結合,會先生成目標文件,然后鏈接成 file.exe
運行的時候需要注意,必須要給路徑名 如:./a.out 直接輸入a.out不能運行。
如果只有一個.cpp 可以不要生成目標文件那個過程。
如:g++ lin.cpp則會生成a.out,可直接運行。
附:linux命令
ls列出文件,ls -al ,-a列出所有文件,包括隱藏文件,-l長文件,即包含文件屬性
如 ls -al ~,列出家目錄下的所有文件。