Vim 刪除、復制與粘貼
文件編輯器中刪除、復制、粘貼等操作都是比較常用的功能,普通的文本編輯器這些操作都是需要用鼠標操作。那么Vim 中純鍵盤是如何來操作的呢。
1. Vim VS Windows
Vim 中的刪除、復制、粘貼于 Windows 下的還是有細微不同的,具體看下表:
Windows | vim | 比較 |
---|---|---|
cut | delete | vim delete 和windows 剪切差不多,不是真正的刪除 |
copy | yank | 含義相同,只是為了避免c(change)沖突,改成了y(yank) |
paste | put | 粘貼含義享同而且首字母都是p,方便記憶和操作 |
2. Vim 刪除、復制與粘貼基礎(chǔ)操作
Vim 刪除、復制與粘貼基礎(chǔ)操作快捷鍵如下:
快捷鍵 | 功能 |
---|---|
d | 剪切選定文本內(nèi)容 |
y | 復制選定文本內(nèi)容 |
p/P | 粘貼到光標前/后 |
u | 撤銷上一步操作 |
Ctrl+r | 恢復之前撤銷操作 |
3. 組合操作
上節(jié)中我們已經(jīng)講了 Vim 的組合思想。在這里我再強調(diào)一下。這個思想會貫穿整個 Vim 操作。
我們同樣可以在復制粘貼刪除等操作中應(yīng)用組合思想,一些常用組合快捷鍵如下:
組合快捷鍵 | 功能 |
---|---|
x | 刪除光標下單個字符,據(jù)組合大家可以試試多個字符如何刪除 |
y2w | 光標正向復制兩個單詞 |
D/d$ | 刪除當前行光標后所有字符 |
dd | 刪除當前行 |
dG | 刪除光標之后所有行 |
d^ | 刪除當前行光標到行首所有字符 |
daw | 刪除當前光標單詞 |
4. 復制刪除的秘密
通過開頭的對比,我們知道 Vim 中的刪除和 Windows 是不一樣的,更像是一種剪切。那么我們是否可以做到和 Windows 一樣的徹底刪除呢?
答案是可以的。這里我們需要更深入了解下 Vim 中的刪除復制操作的深層理念。這個概念的根本就是我們接下來說的 Vim 第二個特色——寄存器。
4.1 寄存器概念
Vim 中的寄存器簡單來說就是用于保存文本的容器。我們對不同場景劃分了不同的寄存器,或者說容器。主要用于 Vim 使用中臨時保存一些數(shù)據(jù)用于他用。
通過 Vim help registers 可以看到 Vim 中的 10 種寄存器:

這一個小節(jié)我們只會講到復制粘貼刪除等操作所涉及到的寄存器,重點只是讓大家能直觀感受下 這些操作的底層概念,更加復雜的寄存器場景后面我們會有單獨的章節(jié)專門講解。
默認情況下我們的刪除復制操作都是使用的:
寄存器名 | 標識 |
---|---|
無名寄存器 | “” |
復制專用寄存器 | 數(shù)字0 |
查看寄存器:
-
命令模式下輸入:register
-
復制 echo:yy
Tips: 可以看到無名寄存器和復制專用寄存器已經(jīng)存入了 echo。
-
刪除 slient:daw
可以看到無名寄存器已經(jīng)更新為了 slient。無名寄存器有個特點就是后面的操作會覆蓋前面的操作,所以才會引申出其他的寄存器來滿足更加復雜的場景。但是可以看到復制寄存器還是 echo。這個時候我們就來試下如何根據(jù)寄存器分別粘貼不同寄存器內(nèi)容。
快捷鍵 | 含義 | 內(nèi)容 |
---|---|---|
p | 默認粘貼無名寄存器內(nèi)容 | slient |
"0p | 指定粘貼復制寄存器內(nèi)容 | echo |
5. 小結(jié)
我們講解了常用的刪除復制操作快捷鍵和組合方式。并且針對這些操作引申出了更加底層原理——寄存器。我們會在操作復制刪除操作時候臨時把文件內(nèi)容放到這些不同的寄存器容器中,然后按需使用。達到比 Windows 更加高效的方式。