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

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