1 vim基本概念
vim三種主要模式
- 正常/普通/指令模式
控制螢幕光标的移動,字元、字或行的删除,移動或複制某行
- 插入模式
編輯模式,在此模式下做文字輸入
- 末行模式
檔案儲存或退出,也可以進行檔案替換,找字元串,列出行号等操作
2 vim基本操作
輸入vim 檔案名稱後進入vim編輯畫面,進入後處于正常模式。
三種模式間的切換
- 【正常模式】切換至【插入模式】
- 輸入 i (從光标目前位置開始輸入)
- 輸入 a (從光标所在位置的下一個位置開始輸入)
- 輸入 o (插入新的一行,從行首輸入)
- 【插入模式】切換至【正常模式】
按一下[Esc]鍵
- 【正常模式】切換至【末行模式】
按下shift鍵和;(就是輸入:)
進入末行模式的操作
:w(儲存目前檔案)
:wq(儲存并退出)
:q!(不儲存強制退出)
3 vim正常模式指令集
3.1 移動光标
- h、j、k、l控制光标左、下、上、右移動
- G:移動到文字最後
- $:移動到光标所在行的行首
- crtl+b:螢幕向後移動一頁
- ctrl+f:螢幕向前移動一頁
3.2 删除文字
- x:每按一次,删除光标所在位置的一個字元
- ?x:删除光标所在位置包括自己?個字元
- X:大寫X,删除光标所在位置前面的一個字元
- dd:删除光标所在行
- ?dd:從光标所在位置開始删除?行
3.3 複制
- yy:複制光标所在行到緩沖區
- ?yy:複制光标所在行下面往下數?行
- p:将緩沖區的字元粘貼到光标所在位置
3.4 替換
- r:替換光标所在處的字元
- R:替換光标所到之處的字元
3.5 撤銷上一步操作
- u:誤執行一個指令,可以馬上按下u,回到上一個操作
- ctrl+r:撤銷的恢複
3.6 更改
- ctrl+g:列出光标所在行的行号
- ?G:移動光标至文章的第?行行首
4 vim末行模式指令集
- 列出行号
set nu:在檔案中的每一行前面列出行号
- 查找字元
/+關鍵字:按 / 鍵,再輸入想查找的字元,如果第一次查找的關鍵字不是您想要的,可以一直按n會一直往後尋找
?+關鍵字:同上
gcc編譯器
預處理(進行宏替換)
- 預處理功能主要包括宏定義,檔案包含,條件編譯,去注釋等。
- 預處理指令是以#号開頭的代碼行。
- 執行個體 gcc -E hello.c -o hello.i
- -E選項:gcc在預處理結束後停止編譯過程
- -o選項:是指目标檔案,“.i”檔案為已經過預處理的C原始程式
編譯(生成彙編)
- 檢查代碼的規範性、是否有文法錯誤等
- 執行個體:gcc -S hello.i -o hello.s
彙編(生成機器可識别代碼)
- 彙編階段是把編譯階段生成的“.s”檔案轉成目标檔案
- 執行個體:gcc -c hello.s -o hello.o
連接配接(生成可執行檔案或庫檔案)
- 執行個體:gcc hello.o -o hello
gdb調試器
gdb 源檔案名稱
使用gdb調試,要在源代碼生成二進制程式的時候,加上-g選項
- list/l 行号:顯示源檔案代碼,接着上次的位置往下列,每次列10行
- list/l 函數名:列出某個函數的源代碼
- r/run:運作程式
- n/next:單條執行
- s/step:進入函數調用
- break(b) 行号:在某一行設定斷點
- break 函數名:在某個函數開頭設定斷點
- info break:檢視斷點資訊
- print(p):列印表達式的值
- set var:修改變量的值
- delete breakpoints:删除 所有斷點
- quit:退出gdb