一 vi的操作模式
vi提供兩種操作模式:輸入模式(insert mode)和指令模式(command mode)。在輸入模式下,使用者可輸入文字資料。在指令模式下,可進行刪除、修改等各種編輯動作。
在輸入模式下,按esc鍵切換到指令模式下。
在指令模式下,按輸入指令(i、a、o等)進入輸入模式。
二 進入vi
$ vi filename
$ view filename
以唯讀方式開啟檔案filename
三 指令模式
3.1 進入輸入模式
a 在當前游標之後輸入
a 在當前行之末輸入
i 在當前游標之前輸入
i 在當前行之首輸入
o 在當前行之下新增一行,並在新增行輸入
o 在當前行之上新增一行,並在新增行輸入
輸入結束後,按esc鍵退出輸入模式。
3.2 游標移動
h 向左移動乙個字元
l 向右移動乙個字元
j 向下移動乙個字元
k 向上移動乙個字元
b 左移乙個單詞,至詞首
w 右移乙個單詞,至詞尾
0 移到當前行行首
$ 移到當前行行尾
+ 移至下一行的行首
- 移至上一行的行首
h 移至視窗的第一行
m 移至視窗的中間一行
l 移至視窗的最後一行
g 移至該檔案的最後一行
ng 移至該文件的第n行
n+ 下移n行
n- 上移n行
3.3 視窗移動
+ f 視窗下卷一頁
+ b 視窗上捲一頁
+ d 視窗下卷半頁
+ u 視窗上捲半頁
+ e 視窗下卷一行
+ y 視窗上捲一行
3.4 刪除操作
x 刪除游標所在字元
x 刪除游標前一字元
dw 從游標當前位置開始向後刪除乙個單詞
db 從游標當前位置開始向前刪除乙個單詞
d0 從行首刪除至當前游標位置
d$ 從游標當前位置刪除至行尾
dd 刪除游標所在行
d 同d$
3.5 修改操作
s 修改游標所在字元,修改完成後按esc鍵結束
s 修改整行內容,修改完成後按esc鍵結束
r 替換當前游標所在字元
r 進入替換狀態,直至按esc鍵結束
cw 修改乙個單詞(從游標位置至詞尾)
cb 修改乙個單詞(從詞首至游標位置)
cc 修改整行內容,完成後按esc鍵結束,同s
c0 修改行首至游標位置的內容
c$ 修改游標位置至行尾的內容
~ 游標所在字元大小寫切換
3.6 指令重複
在指令模式中,可在指令前面加入乙個數字n,則該指令會重複執行n次。常用的重複操作有:
nx 刪除n個字元
ndd 刪除n行
ns 修改n個字元
3.7 取消前一動作(undo)
u 撤消上一指令的結果
3.8 查詢字串
/字串 從當前游標向後查詢該字串
?字串 從當前游標向前查詢該字串
n 從當前游標向後查詢下乙個字串
n 從當前游標向前查詢下乙個字串
3.9 檢視編輯狀況
+ g 顯示正在編輯的檔名、當前游標所在行數、檔案總行數、檔案是否被修改
四 儲存與退出
:w 儲存,但不退出
:wq 儲存並退出
:x 同:wq
:q 退出,如果當前檔案沒有儲存,禁止退出
:q! 不儲存退出
:w file1 將內容儲存至檔案file1中,注意:此時編輯的仍為原檔案
:w! file1 將內容覆蓋儲存至檔案file1中,如檔案file1存在,:w file1將禁止執行
五 環境設定
:set 顯示已設定的環境狀況
:set all 顯示所有的環境設定選項
:set nu 顯示行號
:set nonu 不顯示行號
:set ts
=n 設定tab鍵的長度為n
六 執行指令
以下用具體的數字為例進行介紹,數字表示行數,游標所在行可用「.」代替,檔案最後一行可用「$」代替。 :
10,20d 刪除第10行至第20行的內容
:10d 刪除第10行的內容
:%d 刪除全部內容:10
, 20co30 將第10行至第20行的內容複製到第30行之後:10
, 20mo30 將第10行至第20行的內容移動到第30行之後:1
, $s/old/new 將第1行至最後一行中的old替換成new:1
, $s/^/new 將第1行至最後一行的內容前面插入new:10
將游標移至第10行
七 重複指令
. 重複上一條指令
八 切換到shell狀態
:sh 切換到shell狀態,exit返回
vi基本操作方法
一 vi的操作模式vi提供兩種操作模式 輸入模式 insert mode 和指令模式 command mode 在輸入模式下,使用者可輸入文字資料。在指令模式下,可進行刪除 修改等各種編輯動作。在輸入模式下,按esc鍵切換到指令模式下。在指令模式下,按輸入指令 i a o等 進入輸入模式。二 進入v...
Pytest基本操作方法
測試函式必須以test開頭 測試類必須以大寫test開頭,但測試類不能有init方法 測試檔案必須以test test開頭或者test test結尾 執行.py檔案時候 第一種方法 在temrinal直接輸入pytest 注意要cd到該目錄下去執行,但會該目錄下所有帶有test.py檔案如下 如果只...
陣列的基本操作方法
const arr new array 100 fill 1 map item,index index 1 const arr array.from array 100 a,b b 1 const arr array 100 keys console.log arr const arr 1 2,3 ...