原文地址:Vim實戰指南(三):高級技巧緩存
當vi入門後,在你平常使用中,會遇到下面幾個問題:工具
我編輯好的文本,怎麼沒法保存?是否是要從新來一次?命令行
我誤操做,怎麼回退撤銷?只能退出vi從新打開嗎?code
我能同時複製多個不連續的行嗎?一行一行復制粘貼太慢了。get
下面我將要介紹的內容不只會解決上述問題,還會介紹幾個高級小技巧。io
一般咱們使用vi打開或編輯文件都是直接敲擊vi+文件名,如:入門
$ vi file
實際上,你能夠用vi+行號來打開文件,這將使光標直接調到指定的行數,這對於根據錯誤行號排查問題尤其方便:基礎
$ vi +3 file #這將使光標移動到第3行 $ vi + file #這將使光標移動到文件的末尾 $ vi + /pattern file #這將使光標移動到第一個知足pattern的位置
若是你但願以只讀模式打開文件:file
$ vi -R file
若是你但願強制打開可寫模式,在vi的命令行模式下敲入:技巧
:w!
拷貝到另外一個文件:
:w newfile
vi一共能夠撤銷以前的九次操做,這九次操做存放在vi的九個緩存區中,用數字1-9表示。
當你但願撤銷第三次操做,輸入:
"3p
若是你不記得應該撤銷第幾回操做,能夠輸入:
"1pu.u.u.
來找到你想要的內容,其中u撤銷上一條命令的意思,.是重複上一條命令的意思,詳見Vim實戰指南(一):基礎編輯命令。
事實上,vi的緩存不單單用於撤銷,還能用於複製和粘貼,vi提供了字母a-z共26個緩存區供你使用。
當你但願拷貝的內容存放到緩存區c,輸入:
"cyy
你也可使用組合命令,拷貝3行到緩存區c,輸入:
"c3yy
粘貼緩存區c的內容,輸入:
"cp
刪除也一樣可使用緩存區c,輸入:
"cdd
善用緩存區,還能讓緩存區變成書籤標記供你使用。
當你但願創建標籤c時,輸入:
mc
跳轉到標籤c所在的行,輸入:
'x
跳轉到標籤c所在的字符處,輸入:
`x
移動當跳轉前的行的光標處,輸入;
''
移動到跳轉前的行首,輸入:
``
''和``的用法詳見Vim實戰指南(二):光標移動技巧。
掌握上述的高級技巧,將讓你的編輯技巧比別人技高一籌。沒必要再機械地來回跳轉光標或者一行行復制粘貼了。你會發現vi提供的高級功能,遠比其餘文字處理工具強大的多。