vim命令理解和記憶

2021-10-02 13:27:12 字數 4210 閱讀 8597

首先使用vim需要摒棄乙個不好的習慣就是需要輸入大寫字母非要切換非要用capslk,其實shift+字母就是大寫。因為vim中有很多的快捷鍵是大寫字母,如果使用前者的方式需要按三次鍵盤,而後者的方式只需要一次。

vim的使用致力於雙手可以放在鍵盤上,不需要抬起來拿滑鼠。

上下左右:hjkl

移動到下乙個單詞開頭w。移動到下乙個空格後面w。w比w好用。

行首(第乙個可見字元):^,行尾:$,行的第一列0

翻頁:ctrl+fctrl+b

移動到n行::n

全文首:gg,全文尾g

全篇向下查詢字串string:/string。在配合n向下,n向上查詢。#等價於/游標所在單詞

全篇向上查詢字串string:?string。在配合n向上,n向下查詢。*等價於/游標所在單詞

游標前插入:i

跳轉到行首插入:i,等價與^ i

游標後插入:a

跳轉到行尾插入:a,等價於$ a

列插入:ctrl+v 上下移動游標 i 要輸入的內容 esc

刪除游標處字母:x。刪除游標前的字母:x

刪除乙個單詞包括它後面的空格:daw。刪除乙個單詞不包括它後面的空格:diw

刪除括號()或或{}中且包含括號的內容:da(或[或中不包含括號的內容:di(或[或{

刪除引號'或"中且包含引號的內容:da'或"

刪除引號'或"中不包含引號的內容:di'或"

刪除整行:dd。刪除n行:ndd

刪除本行游標後的內容:d。刪除本行游標前的內容d 0d ^

列刪除:ctrl+v 移動游標選中待刪除部分 d

替換其實就是刪除並插入。

刪除當前字母並進入插入模式:s,等價於x i

刪除當前行並進入插入模式:s,等價於dd o

刪除篇d所有的操作用c來替代,相當於刪除後直接進入插入模式,c相當於dxx a

全文替換::%s/old string/new string/

n到m行替換::n,ms/old string/new string/

複製一行:yyy。複製n行:nyy

刪除篇d所有操作用y來代替,代表複製相應的內容。比如yaw就是複製單詞、yi"就是複製兩個」之間的內容。

在游標之後貼上:p。在游標之前貼上:p

其實p貼上的內容是從vim無名暫存器中取出來的,刪除操作和複製操作都會將內容存入無名暫存器,所以剛刪除的內容是可以用p貼上出來的,dp像是剪下和貼上,yp像是複製和貼上。

字母大小寫切換:~

塊模式是用來選中需要操作的部分,具體執行什麼操作還要看後面跟隨的具體命令。

快速選中:用v替換刪除篇的d,用來快速選中相對應的部分。

常見操作:yaw複製乙個單詞,再移動游標到另一處單詞,vawp用複製的單詞替換當前單詞,vaw代表快速選中單詞,p再進行貼上。將單詞全部轉化成大寫viwu,小寫是viwu

普通塊模式:ctrl+v,進入塊模式移動游標可以選中需要操作的部分。

常見操作:列插入列刪除。

行模式:v,通過上下移動選中多行。

常見操作:多行刪除v 移動游標 d和複製v 移動游標 y,用ndd或者nyy需要數多少行,用v可以所見即所得。

向前撤銷:u,向後撤銷:ctrl+r

自動補全:ctrl+pctrl+n

自動對齊n行:n==

向左縮排:<<。向右縮排:>>

找到與之匹配的括號:%

跳轉函式定義:ctrl+]。跳回:ctrl+t

自動補全ctrl+pctrl+n

儲存::w

儲存退出::wq

不儲存退出::q

左右分割開啟其他檔案::vsp filename

上下分割開啟其他檔案::sp filename

兩個檔案差異比較:vimdiff filename1 filename2。

顯示行號::set nu,不顯示行號:set nonu

設定tab的寬度為n::set ts=n

設定縮排寬度為n::set sw=n

用空格替換tab::set expandtab,反之::set noexpandtab

在行開始時使用製表符::set smarttab

查詢忽略大小寫::set ignorecase 。

從外面貼上**縮排會出現問題::set paste。複製完成後在::set nopaste。這一點貼上python尤為重要。

可以在~/.vimrc檔案來提前配置vim。

一些操作,如:d/y/c,像是乙個及物動詞(謂語)一樣,後面可以跟它的賓語,如:w/(/',這些賓語可以有他們的定語,如:i/a。這些都可以自由的組合。

一些操作,如:p/o,像是乙個不及物動詞一樣,i/a也可以是不及物動詞。

賓語(待操作的物件)也可以通過塊模式選取。比如:列刪除操作、vi(d刪除()之間的內容。

vim還有很多強大的功能,筆者目前用的不多。比如:做標記m和標記跳轉`,有名的暫存器操作"暫存器名,錄入命令集合q名字***q,取出命令集合@名字

如果寫c/c++可以將vim外掛程式安裝到clion中使用,寫**不要太爽。

linux中還可以安裝ctags和escope外掛程式,完善函式跳轉。

最終附上我常用的vim配置檔案 vim配置檔案

vim 命令理解記憶

最近想轉 vim,高效是建立在對命令爛熟於心的基礎上的。自己總結了一些方便記憶 vim 命令的點。以 vscode 的 vim 外掛程式為例 我感覺 vim 的最大的特點就在於它的命令組合,比如說 20dd數字 20 就代表執行次數,dd 是刪除當前行,這個命令就代表著刪除游標所在處開始的後三行。又...

vim命令的理解

這部分 一起來說 vim 語,理解此部分是需要你已經了解了 vim 的幾種常用的工作模式 正常模式 插入模式 命令模式等 總結得很好,對於記憶vim命令非常有幫助,感謝。動詞代表了我們打算對文字進行什麼樣的操作。例如 d 表示刪除delete r 表示替換replace c 表示修改change y...

Vim 命令和配置

1.游標移動 l右移乙個字元 h左移乙個字元 w右移乙個字 w右移乙個空白分隔字 b左移乙個字 b左移乙個空白分隔字 移到行尾 e右移到字的末尾 e右移到空白分隔字的末尾 0移到行首 return 移到下一行行首 j下移一行 移到上一行行首 k上移一行 句尾 句首 段尾 段首 2.檢視工作緩衝區 d...