VI命令使用大全

2021-06-06 13:38:07 字數 3375 閱讀 2658

從shell中啟動視覺化編輯器 

vi filename 指示shell啟動vi編輯器,並將引數filename傳給它。如果當前目前中存在該檔案,則vi編輯器將它解釋為要開啟的檔案;如果沒有該檔案,則vi編譯器建立新檔案 

vi file1 file2 file3 shell傳遞3個引數給vi,vi將它們解釋為要開啟的檔案。可以使用:w命令儲存檔案,使用:n命令訪問下乙個檔案 

vi +# filename 開啟檔案,並將游標移到指定的行。例如,命令vi +100 records 從第100行開始編輯檔案records 

vi +/the filename 開啟檔案,並將游標移動包含有目標字串的行。例如,命令vi +/jason friends 從第1個含有字串jason的行開始編輯檔案friends

view filename 開啟檔案進行編輯,但是拒絕儲存對檔案的修改,除非使用w!命令 

游標移動命令 

hjkl 將游標分別向左、下、上、右移動乙個字元 

0(零) 將游標移到當前行的行首 

^(脫字元) 同0一樣將游標移到當前行的行首 

$ 將游標移到當前行的行末 

##g 將游標移到g前面的數字指定的行。例如,42g將游標移到檔案的第42行 

g 將游標移到檔案的最後一行 

w 將游標向前移到下乙個單詞的首字母 

e 將游標向前移到下乙個單詞的最後乙個字母 

b 將游標向後移到上乙個單詞首字母 

- 將游標定位到上一行的行首 

+ 將游標定位到下一行的行首 

12| 將游標定位到當前行的第12列 

l 將游標定位到螢幕的最下面一行 

m 將游標定位到螢幕中間的一行 

h 將游標定位到螢幕的最上面一行 

'' 兩個單引號將游標移到它的先前的位置 

游標定位命令(上下文的) 

fb 將游標向前移到當前行上的下乙個字母b(或者其他的任意指定的字元) 

fb 將游標向後移到當前行上的上乙個字母b(或指定的字元) 

t# 將游標移到當前行上字元#的第1個例項的右側。例如,命令tm將游標移到當前行上第1個m的右側 

t# 在當前行上向左移動游標,將它移到字元#的第1個例項的前一字元 

/word 將游標向前移到單詞word的下乙個例項 

?word 將游標向後移到單詞word的上乙個例項 

n 將游標移到前面命令/word或?word中指定模式的下乙個例項 

顯示調整命令 

ctrl+d 顯示檔案中的下半屏文字 

ctrl+u 顯示檔案中的上半屏文字 

ctrl+f 顯示檔案中的下一屏文字 

ctrl+b 顯示檔案中的上一屏文字 

設定顯示選項 

:set number 將行號作為螢幕顯示的一部分,但是行號並不是檔案的一部分。它的縮寫形式為:set nu 

:set nonumber 清除螢幕上的行號。也可以使用縮寫形式:set nonu 

:set showmode 在螢幕的右下角顯示追加模式資訊 

:set list 在每行的行末顯示美元符號,並用ctrl+i表示製表符 

:set showmatch 在輸入)或]時,將游標移到與之匹配的(或[ 

:set window=value 定義螢幕上顯示的文字行的行數 

:set autoindent 自動縮排。也可以使用縮寫形式:set ai 

:set tabstop=value 設定顯示製表符的空格字元個數。也可以使用縮寫形式ts=value 

:set wrapmargin=value 設定顯示器的右頁邊。當輸入進入所設定的頁邊時,編輯器自動回車換行 

:set ignorecase 指示編輯器搜尋字串,並忽略目標中字母的大小寫 

:set 顯示設定的所有選項 

:set all 顯示所有可以設定的選項 

文字刪除命令 

dd 刪除當前游標所有的文字行 

#dd 刪除#行文字 

dw 從文字中刪除乙個單詞 

#dw 從文字中刪除#個單詞 

x 刪除游標所在的乙個字元 

#x 從文字中刪除#個字元 

d 刪除當前行上游標後面的部分 

:#,#d 例如,:12,37d 將刪除第12~37行之間的所有文字,包括第12和37行 

撤銷命令 

u 撤銷。恢復最近一次的文字修改操作,即使已經移動了游標。在linux系統中,再次使用撤銷命令將恢復更前一次的文字修改操作。在bsd的vi中,第2次撤銷操作將撤銷第一次撤銷操作,恢復第1次撤銷前修改的文字 

:redo 在linux系統中,取消撤銷操作恢復文字修改。在標準的unix系統中,第2個u命令取消第1個u命令,結果就是乙個「redo」 

u 如果在修改後還沒有將游標移出當前行,則可以撤銷對當前行進行的所有的文字修改 

向文字中新增文字 

a(小寫) 從游標的右側開始插入文字 

a(大寫) 從當前行的行末開始新增文字 

i(小寫) 從游標的左側開始插入文字 

i(大寫) 從當前行的行首插入文字 

o(小寫) 在游標的下面開啟(或插入)乙個新行 

o(大寫) 在游標的上面開啟乙個新行 

:#r filename 例如,:8r report.old讀取檔案report.old,並將它的內容放到當前檔案的第8行之後 

esc 無論使用什麼命令進入了追加/插入模式,都可以通過按esc鍵離開追加模式返回到vi的命令模式 

ctrl+v 允許輸入控制字元。按ctrl+v鍵後再按回車鍵將把ctrl+m插入到檔案中 

在檔案中修改文字 

cw 僅僅修改游標處的單詞(刪除單詞,然後進入追加模式中,以在被刪除單詞的位置新增文字) 

s(小寫) 替換單個字元 

s(大寫) 替換整行文字 

cc 替換整行文字(同s) 

r 用輸入的下乙個字元替代當前游標處的字元,並自動返回到命令模式 

r 將編輯器放到覆蓋模式,用輸入的字元來逐個替換游標處的字元 

c(大寫) 修改行上從游標到行末之間的文字 

ct# 修改行上從游標到前向第1個目標字元之間的文字。例如cty將刪除當前行上從游標到向前第1個字元y之間的所有文字,並進入追加模式以在刪除文字的位置新增文字 

cf# 修改行上從游標到前向第1個目標字元之間的文字(包括目標字元)。例如cfy將刪除當前行上從游標到向前第1個字元y之間(包括y)的所有文字,並進入追加模式以在刪除文字的位置新增文字 

ct# 修改行上從游標到後向第1個目標字元之間的文字。例如cty將刪除當前行上從游標到向後第1個字元y之間的所有文字,並進入追加模式以在刪除文字的位置新增文字 

cf# 修改行上從游標到後向第1個目標字元之間的文字(包括目標字元)。例如cfy將刪除當前行上從游標到向後第1個字元y之間(包括y)的所有文字,並進入追加模式以在刪除文字的位置新增文字

ref:

VI命令使用大全

從shell中啟動視覺化編輯器 vi filename 指示shell啟動vi編輯器,並將引數filename傳給它。如果當前目前中存在該檔案,則vi編輯器將它解釋為要開啟的檔案 如果沒有該檔案,則vi編譯器建立新檔案 vi file1 file2 file3 shell傳遞3個引數給vi,vi將它...

vi命令大全

vi編輯器的文字說明 功能 命令模式 command mode 控制游標移動,刪除字元,段落複製。末行模式 last line mode 儲存檔案,離開vi,以及其他設定。命令模式命令 命令 說明 h 將游標向左移動一格 l 將游標向右移動一格 j 將游標向下移動一格 k 將游標向上移動一格 0 數...

vi 命令大全

進入vi的命令 vi filename 開啟或新建檔案,並將游標置於第一行首 vi n filename 開啟檔案,並將游標置於第n行首 vi filename 開啟檔案,並將游標置於最後一行首 vi pattern filename 開啟檔案,並將游標置於第乙個與pattern匹配的串處 vi r...