show: step
version: 1.0
enable_checker: true
快速刪除
回憶上節(jié)課內(nèi)容????
- 以前知道可以在插入狀態(tài)下使用 <kbd>del</kbd>、<kbd>退格</kbd> 進(jìn)行刪除
- 現(xiàn)在知道了默認(rèn)狀態(tài)下使用通過
x
刪除字符- 可以在
x
前面使用[count]
進(jìn)行翻倍 - 如
10x
- 刪除的字符存儲在
""
寄存器中 - 可以用
:reg
查看寄存器狀態(tài)
- 可以在
- 默認(rèn)狀態(tài)可以使用
X
退格- 刪除的字符也在
""
寄存器中
- 刪除的字符也在
- 我們掌握了在 vi 中刪除字符的各種方法
- 后面還有啥呢?????
刪除字符
- 我們發(fā)現(xiàn) dd 可以刪除一行
- 試一試?!????
刪除的內(nèi)容
- 刪除的東西放到哪里呢?
:reg
- 就放在默認(rèn)寄存器
""
里面 - 還可以加
[count]
進(jìn)行翻倍 5dd
可以刪除 5 行,刪除之后,仍然把被刪除的內(nèi)容放到了""
寄存器- 那這個(gè) d
{motion}
是什么意思呢?
運(yùn)動幫助
- 我們可以查詢
motion
的文檔呀?。。?/li> h motion
motion
就是光標(biāo)運(yùn)動- 比如我們
G
就直接到文檔最后一行dG
就是從光標(biāo)當(dāng)前位置刪除到最后一行,太爽了!????
gg
是到最開始的一行dgg
就是從光標(biāo)位置到最開始都刪除掉了!??!
ggdG
就是從頭刪到尾8G
就是到第8行d8G
就是從光標(biāo)位置到第8行都刪除- 如果總共只有4行,怎么辦?
- 如果總共4行,
8G
就是道最后一行 - 所以,此時(shí)
d8G
就是什么,你懂的?
- 試一試????
上下左右
- 光標(biāo)運(yùn)動的方式是
hjkl
- 這些都是
motion
- 如果前面是
d
- 比如
dj
- d 代表刪除
- j 移動到下一行
- dj 代表從當(dāng)前光標(biāo)行刪除到下一行
- 總共刪除兩行
- 比如
dl
- 刪除當(dāng)前光標(biāo)字符
- 也就是
x
- 比如
dh
- 刪除當(dāng)前光標(biāo)前面的字符
- 退格
- 也就是
X
翻倍因素
-
如果
d8j
d
就是刪除8j
從當(dāng)前光標(biāo)位置到往下的8
行d8j
所到之處都刪了
- 同樣的
d7k
d
是刪除7k
是往上7行- 連同當(dāng)前行總共8行
- 這范圍里都刪了
- 思考一下
d8h
、d4l
分別是干什么? ????
按單詞刪
wbe
還記得是什么意思么?- 不記得的話,就
h w
- 不記得的話,就
- 如果光標(biāo)在詞頭的話
w
是到下一個(gè)word
的開頭b
是到上一個(gè)word
的開頭e
是到當(dāng)前word
的結(jié)尾
練習(xí)
- 所以我們知道
dw
是從當(dāng)前位置刪除到下一個(gè)word
的開頭(刪除包括中間的空格)d3w
是從當(dāng)前位置刪除到下 3 個(gè)word
的開頭3dw
是從當(dāng)前位置做3
次dw
3d2w
是把d2w
做3
次de
是從當(dāng)前位置刪除到當(dāng)前word
的結(jié)尾(不刪除空格)d4e
是從當(dāng)前位置刪除到下4個(gè)word
的結(jié)尾(包括當(dāng)前單詞)db
是刪除前面的word
d2b
是前面2
個(gè) word
- 以上是當(dāng)前光標(biāo)在詞頭的情況
- 如果當(dāng)前光標(biāo)在詞中?
光標(biāo)在詞中
- 如果光標(biāo)在詞中的話
w
是到下一個(gè)word
的開頭b
是到當(dāng)前word
的開頭e
是到當(dāng)前word
的結(jié)尾
- 移動到那里就刪到哪里!
- b是保留當(dāng)前光標(biāo)字符往前刪的
- 這個(gè)還得注意
word
和WORD
的區(qū)別
大詞小詞
- 大小詞定義
word
包括空格和各種標(biāo)點(diǎn)作為分隔符WORD
只有空格被認(rèn)作分割符- 比如
text-indent
- 就是
3個(gè)word
- 也是
1個(gè)WORD
dW
就可以直接刪除這個(gè),這個(gè)很方便,尤其標(biāo)識符里面有很多下劃線的情況
- 說出大天也沒有用,這個(gè)就得動手練!????
行頭行尾
-
行頭
- <kbd>^</kbd> 是到本行第一個(gè)非空字符
- <kbd>0</kbd> 是到本行第一個(gè)字符,不管是不是空格
-
行尾
- <kbd>$</kbd> 跳到本行最后一個(gè)字符,即使他是空格
- <kbd>g</kbd><kbd>_</kbd> 是到本行最后一個(gè)非空字符
- 兩個(gè)按鍵要依次按下
- 如果忘了就要
:h
查詢一下
- 刪除呢?
d^
就是刪除到本行第一個(gè)非空字符,當(dāng)前字符保留d0
就是從當(dāng)前位置刪除到本行第一個(gè)字符(不管他是否是空格),當(dāng)前字符還是保留著2d^
就是將d^
執(zhí)行2
遍,其實(shí)和執(zhí)行一遍沒有區(qū)別,還是刪一行d2^
就是d
到2^
和d
到^
,其實(shí)一樣的,還是刪一行- <kbd>d</kbd> <kbd>$</kbd> 從光標(biāo)刪除到行尾,包括光標(biāo)所在的當(dāng)前字符
- <kbd>d</kbd> <kbd>$</kbd> 還有一種做法<kbd>D</kbd>
刪到行尾
:h D
- <kbd>D</kbd> 本身就是 <kbd>d</kbd> <kbd>$</kbd>
- 定位的方法還有行內(nèi)查找
行內(nèi)查找
- 通過<kbd>f</kbd><kbd>o</kbd>直接就跳到了右邊的
o
字符 dfo
就是從當(dāng)前位置d
到fo
的位置fo
的位置就是從當(dāng)前位置向前f
到的第1
個(gè)o
的位置- 光標(biāo)當(dāng)前字符也刪除
d2fo
就是從當(dāng)前位置d
到2fo
的位置fo
的位置就是從當(dāng)前位置向前f
到的第2
個(gè)o
的位置
2dfo
就是將dfo
執(zhí)行2
遍dfo
就是從當(dāng)前位置d
到fo
的位置fo
的位置就是從當(dāng)前位置向前f
到的第1
個(gè)o
的位置
- 這兩個(gè)結(jié)果其實(shí)一樣
反向查找
- 反向查找的話是
F
dFo
是從當(dāng)前位置刪除到Fo
的位置Fo
的位置是從當(dāng)前位置反向查找F
第1
個(gè)o
的位置- 當(dāng)前光標(biāo)所在字符保留
dF2o
的位置是從當(dāng)前位置刪除到F2o
的位置F2o
的位置是從當(dāng)前位置反向查找F
第2
個(gè)o
的位置- 當(dāng)前字符保留
2dFo
就是將dFo
執(zhí)行2
遍dFo
就是從當(dāng)前位置d
到Fo
的位置Fo
的位置就是從當(dāng)前位置反向查找F
到的第1
個(gè)o
的位置
配合重復(fù)
- .可以重復(fù)上次操作
- 如上圖的df>
- .就是再執(zhí)行df>一次
- 可以在
oeasy.java
里面練習(xí)一下????
行內(nèi)貼靠
- 除了
f
之外我們還有t
- <kbd>f</kbd> <kbd>e</kbd> 是把光標(biāo)移動到
e
上面- 是跳轉(zhuǎn)到
- <kbd>t</kbd> <kbd>e</kbd> 是把光標(biāo)移動到
e
之前的字符上面- 是貼靠到
dt(
是指從當(dāng)前位置刪除到t(
t(
是指貼靠到(
t
誰就是要貼靠到誰
- 這個(gè)可以翻倍嗎?
貼靠翻倍
- 可以!
- 這個(gè)也可以通過
[count]
翻倍 - <kbd>2</kbd> <kbd>t</kbd><kbd>o</kbd>
till
第 2 個(gè)o
- d2to 可以刪除到 紅色的l
- d3to 可以刪除到 紫色的w
- 不但可以翻倍
- 而且可以重復(fù)<kbd>.</kbd>
- 距離看不清的時(shí)候就用<kbd>.</kbd>
跳躍和貼靠
- 和
f
相關(guān)的是跳躍- 向
前
跳躍是<kbd>f</kbd> - 向
后
跳躍是<kbd>F</kbd>
- 向
- 和
t
相關(guān)的是貼靠- 向
前
貼靠是 <kbd>t</kbd> - 向
后
貼靠是 <kbd>T</kbd>
- 向
- 和
小寫
相關(guān)的是向前
向前
跳躍是 <kbd>f</kbd>向前
貼靠是 <kbd>t</kbd>
- 和
大寫
相關(guān)的是向后
向后
跳躍是 <kbd>F</kbd>向后
貼靠是 <kbd>T</kbd>
全文查找
- 全文查找的兩個(gè)命令是 <kbd>/</kbd> 和 <kbd>?</kbd>
d/Code
如何執(zhí)行?- 摁下 <kbd>d</kbd>,注意狀態(tài)欄
- <kbd>/</kbd>然后狀態(tài)欄只顯示
/
- 輸入
Code
注意狀態(tài)欄 - 文中查找
Code
并且高亮顯示 - 摁下
回車
把從當(dāng)前光標(biāo)一直到高亮顯示的Code
的位置
- 反向查找的話就是 <kbd>?</kbd>
- 可以加翻倍
[count]
嗎?- 可以的
3d/Code
- 可以的
- 而且可以<kbd>.</kbd>重復(fù)查找刪除
- 動手試一下?。?!????
文本區(qū)塊
- 使用 {、},讓光標(biāo)前后移動段落
- 使用(、),讓光標(biāo)前后移動句子
- 可以使用
[count]
翻倍 :h }
來查看文檔
- 這些也是
motion
可以和d
配合 - 比如
d{
、d3)
總結(jié)
-
我們大幅度地復(fù)習(xí)了整個(gè)
motion
: -
直接運(yùn)動
- <kbd>h</kbd> <kbd>j</kbd> <kbd>k</kbd> <kbd>l</kbd>
-
行運(yùn)動
- 首行<kbd>g</kbd> <kbd>g</kbd>
- 末行<kbd>G</kbd>
- 第n行<kbd>n</kbd> <kbd>G</kbd>
-
單詞運(yùn)動
wbe
- <kbd>w</kbd> 是到下一個(gè)
word
的開頭 - <kbd>b</kbd> 是到當(dāng)前
word
的開頭 - <kbd>e</kbd> 是到當(dāng)前
word
的結(jié)尾 - 除了
word
之外還有WORD
- <kbd>w</kbd> 是到下一個(gè)
-
行頭行尾
- <kbd>^</kbd> 是到本行第一個(gè)非空字符
- <kbd>0</kbd> 是到本行第一個(gè)字符,不管是不是空格
- <kbd>g</kbd><kbd>_</kbd> 是到本行最后一個(gè)非空字符
- <kbd>$</kbd> 跳到本行最后一個(gè)字符,即使他是空格
-
行內(nèi)跳躍和貼靠
- 向
前
跳躍是<kbd>f</kbd> - 向
后
跳躍是<kbd>F</kbd> - 向
前
貼靠是<kbd>t</kbd> - 向
后
貼靠是<kbd>T</kbd>
- 向
-
全文查找
- 查找的話就是 <kbd>/</kbd>
- 反向查找的話就是 <kbd>?</kbd>
-
文本區(qū)塊
- <kbd>{</kbd>、<kbd>}</kbd> 按段落移動
- <kbd>(</kbd>、<kbd>)</kbd> 按句子移動
- 這些
motion
都可以 <kbd>d</kbd>配合使用,完成快速刪除的工作 - 過程中還可以使用
[count]
進(jìn)行翻倍 - 刪除的內(nèi)容,放在
""
寄存器中 - 可以配合重復(fù)<kbd>.</kbd>
- 那這個(gè)東西刪了
- 放在寄存器里
- 我想粘貼到別的地方
- 怎么辦呢?????
- 下次再說 ????
[Github地址] (https://github.com/overmind1980/vimtutorial)
[Gitee地址] (https://gitee.com/overmind1980/vimtutorial)
[藍(lán)橋?qū)嶒?yàn)樓 邀請碼FJWYIMGB] (https://www.lanqiao.cn/courses/2840)
本文摘自 :https://blog.51cto.com/u