收藏) Unix vi基本操作方法

2021-09-09 04:36:21 字數 2883 閱讀 3958

一 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 ...