VI命令使用大全

2021-12-29 21:33:21 字數 3361 閱讀 1052

從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)的所有文字,並進入追加模式以在刪除文字的位置新增文字

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