vim學習筆記(1)——vim操作
阿新 • • 發佈:2019-02-15
僅記錄一些自己最常用的vim操作,隨時更新
文字操作
- d 剪下,雙擊剪下一行
- y 複製,雙擊複製一行
p 貼上
x 刪除當前游標下字元
r 替換當前游標字元,後面接替換的字元
:s/old/new/g 全域性替換old為new
移動
- 0 移動到開頭
- $ 移動到結尾
- w 移動到下一個單詞開頭
e 移動到下一個單詞結尾
fx 移動到本行之後第一個出現x字母的位置
tx 移動到本行之後第一個出現x字母的前一個位置
gg 跳到檔案首
- G 跳到檔案尾
NG 移動到第N行,或者用:N也可
{ 上一段,}下一段
% 跳到匹配的括號處
ctrl+o 上一個位置
- ctrl+i 下一個位置
文字移動和操作相互配合使用,比如d$+enter刪除到行末,dw刪除至下一個單詞,2dd刪除接下來兩行
也可以和數字相互使用,比如y+enter5,複製以下5行,:1,20d+enter刪除1~20行
模式切換
插入模式
- i 進入插入模式,當前插入游標位置插入
- a 進入插入模式,下一個游標位置插入
- o 進入插入模式,在當前行下一行插入
- O 進入插入模式,在當前行上一行插入
可配置vim成滑鼠游標定位模式
視覺化模式
- :v 進入視覺化模式
替換模式
- :R 進入替換模式
使用外部命令
- :! 在!後新增外部命令
查詢
- :/ 在/後新增要查詢的內容
進入查詢時,按n查詢下一個,N查詢上一個
檔案操作
儲存檔案
- :w 儲存
- :saveas filename 另存為
退出
- :q
儲存退出vim
vim中儲存退出:x和:wq的區別,如下:
:wq和ZZ 強制性寫入檔案並退出(存檔並退出 write%quite)。即使檔案沒有被修改也強制寫入,並更新檔案的修改時間。
:x 寫入檔案並退出。僅當檔案被修改時才寫入,並更新檔案修改時間;否則不會更新檔案修改時間。
這兩者一般情況下沒什麼不一樣,但是在程式設計方面,對編輯原始檔可能會產生重要影響。因為檔案即使沒有修改,”:wq”強制更新檔案的修改時間,這樣會讓make編譯整個專案時以為檔案被修改過了,然後就得重新編譯連結生成可執行檔案。這可能會產生讓人誤解的後果,當然也產生了不必要的系統資源花銷。
操作回退和重做
- u 撤銷上一個改動
- U 撤銷本行所做的改動過
- ctrl+r 重做操作
其他
- ctrl+g 顯示當前檔案資訊
- ctrl+d 補全命令
參考資料: