Vi常見使用技巧

Vi功能相當強大,但也很繁瑣,需要你經常使用,經常鍛鍊,時間長了,命令記熟了,效率就提上去了。這篇文章不是Vi的詳細使用手冊,而只是針對me的。

 

1)啓動Vi:

 

將光標定位到文件最後一行啓動: vi + filename

將光標定位到每一個出現string字符串的行首: vi +/string filename(注意string用引號包圍)

 

2)退出Vi:

 

:x功能相等於:wq

 

3)光標在窗口中的移動

 

命令模式下:

右移一個字符:   l或空格或→

移到當前行的開始: o

移到下一行的開始: Enter或+

移到上一行的開始:-

移到下一個字或標點符號: w

移到下一個字: W

移到字的下一結尾:e

移動字的下一結尾:E

移回到字或標點符號的開始:b

移回到字的開始: B

移到當前句子的結尾:)

移到當前句子的開始:(

移到當前段落的開始:{

移到當前段落的結尾:}

 

4)光標在緩衝區中移動

 

命令模式下

向上移動一個滿屏幕:  Ctrl+F

向上移動半屏幕:  Ctrl+D

向下移動一個滿屏幕:  Ctrl+B

向下移動半屏幕:   Ctrl+U

光標移動到屏幕頂部:  H

光標移動到屏幕中部:  M

光標移動到屏幕底部:  L

這些命令前都可加入數字n作爲前綴

 

5)光標在正文中的移動

 

移動到文件的尾部:  G或:$

移動到文件的第n行:  nG或:n

向前移動光標到string首: /string

向後移動光標到string首: ?string

 

6)Vi命令

 

不顯示行號::set nonumber

顯示vi設置情況::set all

顯示當前文件及工作緩衝區狀況::f

將名爲的文件內容插入到緩衝區當前行的下面::r filename

執行命令,並將結果插入到緩衝區當前行的下面::!cmd

 

7)重複和取消操作

 

上一次執行的命令繼續執行:.

取消上一次修改:u

重新編輯,放棄此次對文件的所有修改,重新從盤中讀取文件,開始編輯:e!

 

8)刪除文本

 

刪除當前字符:x

刪除當前字符的前一個字符:X

刪除從當前字符開始的n個字符:nx

刪除當前字符前面的n個字符:nX

刪除從當前字開始的n個字,並放入緩衝區:ndw

刪除從當前字符開始的n行字符:nd$

刪除從當前行開始的n行:ndd

刪除一直到句尾:d )

刪除一直到段末:d }

刪除兩行:d Enter

 

9)檢索及替換

 

定位到當前位置後的第一個string字符串:/string

定位到當前位置前的第一個string字符串:?string

重複上一條檢索命令,向後://

重複上一條檢索命令,向前:??

定位到第一次檢索到的行首::g/string

從第n1行到第n2行將字符串替str1換爲字符串str2::[n1,n2]s/str1/str2/[option]

對整個文件將字符串str1替換爲字符串st2:%s/str1/str2/[option]

從當前行到文件尾將字符串str1替換爲字符串str2:.,$s/str1/str2/[option]

簡單些的字符替換命令: :g/s1/s//s2/[option]

 

10)移動及複製文本

 

將第n1行到第n2行的內容移動到行號n3下: :n1,n2 m n3

將第n1行到第n2行的內容複製到行號n3下: :n1,n2 t n3

複製從當前字符開始的n個字,放到緩衝區中:nyw

複製從當前字符開始的n行字符,放到緩衝區中:ny$

複製到下一句的開始:y)

複製到下一段的開始:y}

複製從當前行的n行: nyy

複製兩行:y Enter

 

11)修改文本

 

替換當前字符,不用按ESC鍵:r

從當前字符開始替換,直到ESC鍵爲止:R

從當前字符開始的行字符進行替換:直到鍵入ESC:nC或nc$

從當前字符開始的個字進行替換操作,直到鍵入ESC:ncw

對從當前字符開始的行字符進行替換,直到鍵入ESC:ncc

替換從當前字符開始的個字符,直到鍵入ESC:ns

從當前行開始的行字符,進行替換,直到鍵入ESC:nS

將當前行和下一行連接起來:J

發佈了46 篇原創文章 · 獲贊 79 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章