Linux 第6章VI的使用

2021-04-13 01:18:34 字數 4164 閱讀 5980

vi 處理乙個檔案的時候,一進入該檔案就是該模式了。在行編輯模式下,

vi是以行為基本單位去操作的。在行編輯模式中可以處理刪除、複製、貼上等動作。

在行編輯模式下,是無法按詞,字對檔案進行編輯!按下

i, i, o, o, a, a

字母之後會進入插入模式。按下

r, r

進入替換模式。按下

esc鍵即可退出輸入模式回到行編輯模式時。

在行編輯模式當中,輸入『: 或

/ 』就可以將游標移動到最底下那一行,就進入了命令模式。在這個模式當中,可以提供您『搜尋資料』的動作,而讀取、存檔、大量取代字元、離開

vi 、顯示行號。

等等的動作則是在此模式中達成的。

[root @test tmp]# vi test.txt

直接輸入

vi 檔名

,即可進入

vi 了。左下角還會顯示這個檔案目前的狀態,如果是新建檔案會顯示

[new file]

,如果是以存在的檔案,則會顯示目前的檔名、行數與字元數,例如:

"/etc/man.config"145l, 4614c

注意,在

vi 裡面,

[tab]

這個按鈕所得到的結果與空格符所得到的結果是不一樣的。

存檔並離開的指令很簡單,輸入

:wq即可存檔離開。如果您的檔案許可權不對,那麼可能會無法寫入,可以使用強制寫入的方式,即使用

:wq!

即可。不過,這個需要在您的許可權可以改變的情況下才能成立的。

3.1.1

移動游標

h 或向左方向鍵

游標向左移動乙個字元j 或

向下方向鍵

游標向下移動乙個字元k 或

向上方向鍵

游標向上移動乙個字元l 或

向右方向鍵

游標向右移動乙個字元

[ctrl] + [f]

螢幕『向前』移動一頁(常用)

[ctrl] + [b]

螢幕『向後』移動一頁(常用)

[ctrl] + [d]

螢幕『向前』移動半頁

[ctrl] + [u]

螢幕『向後』移動半頁

+ 游標移動到非空格符的下一列

- 游標移動到非空格符的上一列 e

游標右移到這個字的末尾

w游標右移到下乙個字的開頭

b游標左移到前乙個字的開頭 0

移動到這一行的最前面字元處(常用)

$移動到這一行的最後面字元處(常用)h

游標移動到這個螢幕的最上方那一行

m 游標移動到這個螢幕的**那一行

l 游標移動到這個螢幕的最下方那一行 n

按下數字後再按空格鍵,游標會向右移動這一行的

n 個字元

g 移動到這個檔案的最後一行

numberg

移動到這個檔案的第

n 行。

enter

游標移動到下一行的行首

n游標向下移動

n 行(常用)

『』將游標移動到前乙個位置

3.1.2

搜尋與取代

1)搜尋:

行編輯模式

/word

向游標之後尋找乙個字串名稱為

word

的字串。(常用)

?word

向游標之前尋找乙個字串名稱為

word

的字串。(2

)取代:命令模式

:n1,n2 s/word1/word2/g

在第n1

與n2

行之間尋找

word1

這個字串,並將其取代為

word2

。:1,$ s/word1/word2/g

從第一行到最後一行尋找

word1

字串,並將其取代為

word2

。:1,$ s/word1/word2/gc

從第一行到最後一行尋找

word1

字串,並將其取代為

word2

。且在取代前顯示提示字元給使用者確認(

conform

)是否需要取代。

3.1.3

刪除、複製與貼上

rc

用c替換當前游標指示的字元

nrc用c替換

n個當前游標指示的字元

x, x x

為向後刪除乙個字元,

x 為向前刪除乙個字元

nx 向後刪除

n 個字元

nx向前刪除

n 個字元 dw

刪除游標右面的字

db刪除游標左面的字

dd刪除游標所在的那一整行(常用)

ndd刪除游標所在的向下

n 行,例如

20dd

則是刪除

20 行(常用)

dng刪除游標所在到第

n行的所有資料

例如d1g dg

刪除游標所在到最後一行的所有資料

如:d$或d

刪除游標所在到行尾的所有資料

d0刪除游標到該行行首的所有資料 yy

複製游標所在的那一行

nyy複製游標所在的向下

n 行,例如

20yy

則是複製

20 行

yng複製游標所在列到第

n行的所有資料

如:yg

複製游標所在行到最後一行的所有資料

p, pp

為複製的資料在游標下一行貼上,

p 則為貼在游標上一行 j

將游標所在列與下一列的資料結合成同一列

u復原前乙個動作)

i, i

插入a, a

增加:由目前游標所在的下乙個字開始輸入,已存在的文字會向後退。

o, o

插入新的一行:從游標所在的下一行枝行首開始

r, r

替換r

會取代游標所在的那乙個字元;

r 會一直取代游標所在的文字

esc

退出編輯模式,回到行編輯模式中

在命令模式下輸入:

number

回車游標到達

n行行首 :w

將編輯的資料寫入硬碟檔案中,

:w!

若檔案屬性為『唯讀』時,強制寫入該檔案;

:q退出vi,

:q!若曾修改過檔案,又不想儲存,使用

! 為強制離開不儲存檔案;

:wq儲存後離開,若為

:wq!

則為強制儲存後離開;

:e!將檔案還原到最原始的狀態;

:zz若檔案沒有更動,則不儲存離開,若檔案已經經過更動,則儲存後離開;

:w [filename]

將編輯的資料儲存成另乙個檔案(類似另存新檔)

:r [filename]

在編輯的資料中,讀入另乙個檔案的資料並將這個檔案內容加到游標所在行後面。

:set nu

顯示行號,

:set nonu

取消行號!

:n1,n2 w [filename]

將n1

到n2

的內容儲存成

filename

這個檔案。

:! command

暫時離開

vi 到指令列模式下執行

command

的顯示結果!例如

[ :! ls /home ]

vi file1 file2 …

檔案之間的切換

n下乙個

n 上乙個

:set all

,找到相應的選項,輸入

set***

,如set ignorecase ,

設定忽略大小寫為vi

配置功能鍵。如:

map i 退出

vi後,

map對映的功能鍵自動取消

:map

檢視我們有哪些功能鍵

:map

檢視key

對應的是什麼功能

第6章 使用QSKIP跳過測試

第6章 使用qskip跳過測試 如果從測試函式中呼叫qskip 巨集,它將停止測試的執行,而不會向測試日誌中新增失敗。它可用於跳過肯定會失敗的測試。qskip描述引數中的文字被附加到測試日誌中,並解釋為什麼測試沒有被執行。qskip可用於在實現尚未完成或在某個平台上不受支援時跳過測試。當存在已知的失...

第 6章 函式

6.1.2引數 2.引數陣列 c 允許為函式指定乙個 只能乙個 特殊的引數,這個引數必須是函式定義中的最後乙個引數,可用params關鍵字定義他們 如 params int vals 3.引用引數和值引數 理解 將本來在函式中引數按值引用的規則改變成按傳遞引用,使得這個引數會改變,定義引數和傳遞引數...

第6章 函式

1.自動物件 只存在於塊執行期間的物件 2.區域性靜態物件static 在程式執行路徑第一次經過物件定義語句時初始化,並且知道程式終止才被銷毀,如果區域性靜態變數沒有顯示的初始值,初始化為0.3.如果函式無須改變引用形參的值,最好將其生命為常量引用。4.使用引用形參返回額外資訊 5.和其他初始化過程...