Vi的基本操作

vi的操作模式
vi
提供兩種操作模式:輸入模式(insert mode)和指令模式(command mode)。在輸入模式下,用戶可輸入文本資料。在指令模式下,可進行刪除、修改等各種編輯動作。
在輸入模式下,按Esc鍵切換到指令模式下。
在指令模式下,按輸入指令(iao等)進入輸入模式。

進入vi

$ vi  filename
直接鍵入“vi + 所要編輯的文件名,即可對指定的文件進行編輯。
如果指定的文件爲新文件,則提示:“New file”,否則顯示該文件的當前內容。
$ 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返回

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章