當vi入門後,在你日常使用中,會遇到下面幾個問題:
我編輯好的文字,怎麼無法儲存?是不是要重新來一次?
我誤操作,怎麼回退撤銷?只能退出vi重新開啟嗎?
我能同時複製多個不連續的行嗎?一行一行複製貼上太慢了。
下面我將要介紹的內容不僅會解決上述問題,還會介紹幾個高階小技巧。
$ vi file
實際上,你可以用vi+行號來開啟檔案,這將使游標直接調到指定的行數,這對於根據錯誤行號排查問題尤為方便:
$ vi +3 file #這將使游標移動到第3行
$ vi + file #這將使游標移動到檔案的末尾
$ vi + /pattern file #這將使游標移動到第乙個滿足pattern的位置
如果你希望以唯讀模式開啟檔案:
$ 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提供的高階功能,遠比其他文書處理工具強大的多。
RabbitMQ實戰 三 高階特性
在實際生產中,很難保障前三點的完全可靠,比如在極端的環境中,生產者傳送訊息失敗了,傳送端在接受確認應答時突然發生網路閃斷等等情況,很難保障可靠性投遞,所以就需要有第四點完善的訊息補償機制。2.1.2.1 方案一 訊息資訊落庫,對訊息狀態進行打標 常見方案 將訊息持久化到db並設定狀態值,收到cons...
Spring實戰之三 高階裝配
primary和 component組合使用,宣告該bean在自動掃瞄時為首選bean,在遇到歧義時首先使用首選bean autowired inject 和 qualifier配合使用,在注入時指定要注入進去的是哪個bean,如 qualifier icecream 表明注入id 確切地講是限定符...
pig 程式設計指南筆記(三) 高階應用
flatten 巢狀foreach 就是對每一條資料,使用一些列操作,使得在foreach 對每一條資料巢狀更多的組合操作!一般巢狀的操作都是序列!理論上可以支援,任意語句巢狀,但是目前只支援filter,limit,orderby,distinct 將有相同鍵值的多個檔案,按相同鍵值收集到一起 收...