vi 操作

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

 在輸入模式下,按Esc鍵切換到指令模式下。
在指令模式下,按輸入指令(i、a、o等)進入輸入模式。


二 進入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 視窗移動

 <Ctrl> + f 視窗下卷一頁
 <Ctrl> + b 視窗上卷一頁
   <Ctrl> + d 視窗下卷半頁
 <Ctrl> + u 視窗上卷半頁
  <Ctrl> + e 視窗下卷一行
  <Ctrl> + 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 查看編輯狀況

 <Ctrl> + 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返回
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章