1. 程式人生 > >vim文字編輯器及Makefile的使用

vim文字編輯器及Makefile的使用

#define # 數字

vi的三種模式:命令列模式,插入模式,底行模式。

命令列:控制游標移動,刪除,移動複製某區段。

進入插入行,底行模式。

插入模式:輸入文字,ESC返回命令列。

底行模式:儲存,退出,設定編輯環境,如尋找字串,列出行號等。

△一般命令列與底行合併,所以分為命令列和插入模式。

建立與退出步驟:

vi 檔名 建立檔案並進入 命令列模式

i 注意配置完vim後任意鍵即可進入插入行,在輸入文字後也可直接刪除

進入插入模式 刪除字需要按esc返回命令列模式

底行模式下 shift ZZ 儲存退出

命令列模式下

:w 檔名 文章將以指定檔名儲存

:wq 儲存退出

:qi 不儲存強制退出

(命令列模式下) 預設在命令列

複製與刪除

刪除:

x:按一次,刪除游標所在位置的1個字元 (相當於剪下,也放在緩衝區中)

#x:刪除游標所在位置的1個字元及往後#-1個字元

//X:按一次,刪除游標所在位置前面1個字元

//#X:刪除游標所在位置前面#個字元

dd:刪除游標所在行

#dd:從游標所在行開始刪除#行

複製:

//yw:將游標所在之處到字尾的字元複製到緩衝區中 p:將緩衝區字元貼上到游標後面

//#yw:將游標所在之處到下面#-1行復制到緩衝區 p:將緩衝區字元插入到游標後面

yy:將游標所在行復制到緩衝區

#yy:將游標所在行及下面#-1行復制到緩衝區

p:將緩衝區內的字元貼上

u:撤銷上一次操作,可多次撤銷

游標移動:

方向鍵上下左右 && h 左j下 k上 l右

Ctrl+b 螢幕往前移動一頁

Ctrl+f 螢幕往後移動一頁

Ctrl+u 螢幕往前移動半頁

Ctrl+d 螢幕往後移動半頁

Ctrl+g 列出游標所在行的行號

#+方向鍵 向上向下移動幾行向左向右移動幾列

gg/1G 游標移動到文章開頭

G 游標移動到文章結尾

#G 移動到第#行開頭

數字0/home/^ 游標移動到本行開頭

$/home 游標移動到所在行的行尾

w 游標移動到下一字的開頭

e 游標移動到下一字的字尾

b 游標回到上個字的開頭

#1 游標移到該行的第#個位置

#[Enter] 游標向下移動#行

[#1] 游標移動到該行的第#個位置

標記:

命令列模式下

m + [a-zA-z] 做標記

'[a-zA-Z] 移動到標記,'為單引號

:marks 列出所有標記

:delmarks[a-zA-Z] 刪除標記

特殊標記:

' 跳轉前的位置

" 最後編輯的位置

替換:

r 替換游標所在處的字元

R 替換游標所到之處的字元,直到按下Esc鍵為止

/關鍵詞 可用來查詢,所有關鍵詞顯示高亮背光,游標停留在第一個關鍵詞

n向下找

N向上找

替換

%s/xxx1/xxx2/g 將xxx1替換為xxx2 g代表全部

sp xxx 開啟其他檔案xxx

Ctrl-w-j 下一個視窗

Ctrl-w-k 上一個視窗

Ctrl-w-q 退出當前視窗

(底行模式下) 命令列模式按shift+:進入底行模式

set nu 列出每一行的行號

set nonu 不顯示行號3

# 跳到第#行

/關鍵詞 如果第一次找的關鍵詞不是想要的,可以一直按n,向下查詢

?關鍵詞 如果第一次找的關鍵詞不是想要的,可以一直按n,向上查詢

noh 消除高亮

在檔案外面執行命令:vim 檔名 x 直接停在第x行

Vim配置:

autoindent 自動縮排

set shiftwidth=4

set tabstop=4 設定Tab長度為四個字元

syntax on 關鍵詞高亮 可以檢錯

gcc 編譯

gcc hello.c -o hello 輸出檔名

執行檔案 絕對路徑 /...

相對路徑 ./

編譯步驟

  1. 預處理 處理#開頭的程式碼(標頭檔案#include>複製替換,巨集定義#define>替換,條件編譯#if>註釋 #if 0 這一部分程式碼不編譯)

gcc -E 生成.i檔案(文字檔案)

  1. 編譯 1、語法檢查 2、把C程式碼翻譯成彙編程式碼

gcc -S 生成.s檔案(文字檔案)

  1. 彙編 把組合語言編譯成二進位制檔案

gcc -c 生成.o檔案(二進位制檔案)

  1. 連結 連線程式需要用到的原始檔

gcc ...o 有幾個o寫幾個

gcc -c hello.c -o hello.o 前三步一步到位

兩個檔案同時 gcc hello.c print.c -o hello

gcc -E hello.c -o hello.i

gcc -S hello.i -o hello.s

gcc -c hello.s -o hello.o

gcc -c hello.c -o hello.o

gcc hello.o print.o -o hello

make(命令) Makefile(檔案) 工程較大時用到 添加註釋#開頭

通過make執行檔案 檢測hello 是否變化 不變化不編譯

先執行Makefile 再makefile

基本格式 target:dependency target:目標 dependency:依賴 有幾個寫幾個

(Tab鍵)command command:命令

最簡單的makefile:

mkdir Makefile

cd Makefile

vim hello.c

#include<stdio.h>

int main()

{

printf("HelloWorld!\n");

return 0;

}

vim Makefile

hello:hello.c

gcc hello.c -o hello

命令make 列印命令 並執行

2.0的Makefile

Target=hello

Object=hello.c

$(Target):$(Object)

gcc $(Object) -o $(Target) //$()引用

3.0的Makefile

Target=hello

Object=hello.o

$(Target):$(Object)

gcc $(Object) -o $(Target)

hello.o:hello.c

gcc -c hello.c -o hello.o //隱含規則,都可以不寫 hello.o 自動尋找hello.c 生成

兩個檔案

vim hello.c

vim print.c

vim Makefile

Target=hello

Object=hello.o print.o

$(Target):$(Object)

gcc $(Object) -o $(Target)

.PHONY:clean

rm *.o hello

Makefile還有清理功能

如果有clean檔案 執行make clean時認為clean為目標,報錯

此時.phony:clean將clean設成偽目標

拓展:

ELT 開頭為二進位制檔案

history | grep gcc 檢視歷史命令gcc

將檔案從電腦移到虛擬機器的方法

1.直接拖進去

2.選單->虛擬機器->設定->選項->共享資料夾->總是啟用->新增自定義資料夾->確定

路徑: /mnt/hgfs/share/