以
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.和其他初始化過程...