oeasy教您玩轉(zhuǎn)vim - 56 - # 字符可視化模式
可視化編輯
回憶上節(jié)課內(nèi)容??
我們學(xué)習(xí)了關(guān)于模式匹配中使用參數(shù)
單個(gè)參數(shù)
:%s/<h2>\(.*\)</h2>/ ? ? ? ?- \1/g
多個(gè)參數(shù)
:%s/<img src=\"\(.*\)\" title=\"\(.*\)\" \/>/[!\2]\1
非貪婪匹配
:%s/<a href=\"\(.\{-\})\">\(.\{-\}\)<\/a>/[\2]\1/g
我們這回會(huì)遇到一種新的模式
什么模式呢?
我們先回憶一下已經(jīng)了解的模式
三種模式
我們先回顧一下以前學(xué)過的模式
正常模式
插入模式
替換模式
命令行模式
今天的新模式是
可視化模式
其實(shí)可視化對(duì)應(yīng)三種可視化
字符可視化v
行可視化V
塊可視化ctrl+v

字符可視模式
v進(jìn)入
還是可以用
{motion}
移動(dòng)光標(biāo)從開始位置到目前光標(biāo)位置文本高亮顯示
相當(dāng)于把選擇范圍高亮顯示
在左下角顯示
可視
意味著進(jìn)入了
可視-字符模式
可以用o切換首尾
控制選擇范圍

為什么要有可視化模式?
具體選擇
為什么要有可視化模式?
因?yàn)楹芏鄷r(shí)候移動(dòng)工具不直觀

可視化
明確點(diǎn)兒可以叫做選擇范圍可視化
像這樣很容易就知道自己所選擇的范圍
然后就可以進(jìn)行相關(guān)操作了
做什么操作呢?
相關(guān)操作
在可視化模式也可以進(jìn)行編輯操作
相當(dāng)于對(duì)于選好的內(nèi)容進(jìn)行操作
選好了之后,
所選區(qū)域?qū)?yīng)的行向左縮進(jìn)一個(gè)
shiftwidth
所選區(qū)域?qū)?yīng)的行向右縮進(jìn)一個(gè)
shiftwidth
所選區(qū)域大小寫互調(diào)
所選區(qū)域轉(zhuǎn)為大寫
所選區(qū)域轉(zhuǎn)為小寫
在所選文本后插入
在所選文本前插入
替換所選文本
將選中的文本替換成單個(gè)字符
修改所選文本
刪除選中的文本
然后輸入想要的內(nèi)容
刪除所選文本
d
c
r
I
A
gu
gU
g~
>
<
這個(gè)和我們常用的相似
操作細(xì)節(jié)
大小寫不同
d只刪除選中的字符
而D刪除選中字符所在行的所有字符,包含結(jié)尾的換行符號(hào)
c 和 C 、 y 和 Y 同理
可以在前面添加
"a
?指定寄存器a

快速選擇文字塊

vaw可以進(jìn)入字符可視模式,并選中單詞
vaW
a WORD (with white space)
包含空格的一個(gè)WORD
iW
inner WORD
不包含空格的WORD
as
a sentence (with white space)
包含空格一個(gè)句子
is
inner sentence
不包含空格一個(gè)句子
ap
a paragraph (with white space)
包含空格一個(gè)段落
ip
inner paragraph
一個(gè)段落
各種括號(hào)引起的文字塊
ab
- ? ?a () block (with parenthesis) ? ? - ? ?一個(gè)小括號(hào)包圍的塊,含括號(hào)ib
- ? ?inner () block ? ?- ? ?不包含括號(hào)的一個(gè)塊aB
- ? ?a {} block (with braces)- ? ?一個(gè)大括號(hào)包圍的塊,含括號(hào)iB
- ? ?inner {} block- ? ?一個(gè)大括號(hào)包圍的塊at
- ? ?a <tag> </tag> block (with tags) - ? ?一個(gè)標(biāo)簽包圍的塊,含標(biāo)簽it
- ? ?inner <tag> </tag> block - ? ?一個(gè)標(biāo)簽包圍的塊,不含標(biāo)簽a<
- ? ?a <> block (with <>) ? ?- ? ?一個(gè)尖括號(hào)包圍的標(biāo)簽,含標(biāo)簽- ? ?相當(dāng)于at ? ?i<
- ? ?inner <> block ? ?- ? ?一個(gè)尖括號(hào)包圍的標(biāo)簽,不含標(biāo)簽- ? ?相當(dāng)于ita[
- ? ?a [] block (with []) ? ? ? ? ? ? ? ? - ? ?中括號(hào)包含的塊,含中括號(hào)i[
- ? ?inner [] block ? ? ? ? ? ? ? ? ? ?- ? ?中括號(hào)包含的塊,不含中括號(hào)
還有各種引用文字塊
a"
- ? ?a double quoted string (with quotes) - ? ?雙引號(hào)括號(hào)包含的塊,含雙引號(hào)i"
- ? ?inner double quoted string ? ?- ? ?雙引號(hào)括號(hào)包含的塊,不含雙引號(hào)a'
- ? ?a single quoted string (with quotes) - ? ?單引號(hào)括號(hào)包含的塊,含單引號(hào)i'
- ? ?inner simple quoted string ? ? ? ?- ? ?單引號(hào)括號(hào)包含的塊,不含單引號(hào)a`
- ? ?a string in backticks (with backticks) - ? ?反引號(hào)括號(hào)包含的塊,不含反引號(hào)i`
- ? ?inner string in backticks ? ?- ? ?反引號(hào)括號(hào)包含的塊,不含反引號(hào)
用行命令操作選區(qū)
選好選區(qū)后
:
左下角會(huì)出現(xiàn):'<,'>
就是從選區(qū)開頭,到選區(qū)結(jié)尾
'< 選區(qū)開頭
'> 選區(qū)結(jié)尾
然后我們摁下d回車
就把選區(qū)范圍內(nèi)都刪除了
我們可以
:h '<
查看相應(yīng)手冊(cè)

總結(jié)
今天我們了解到可視模式,其實(shí)可視化對(duì)應(yīng)三種子模式
字符可視模式v
行可視模式V
塊可視模式ctrl+v
我們先來了解字符可視化模式
快捷鍵v
可配合各種
motion
o切換首尾
字符可視化就是把選擇范圍可視化
快速操作
d
c
y
選中了之后可以進(jìn)行
可以用"a使用指定寄存器
可以用
i
和a
快速選擇范圍w 小詞 W 大詞
()[] {} 各種括號(hào)
t 標(biāo)簽,編寫網(wǎng)頁的時(shí)候很有用
s 句子 p 段落
b 小括號(hào),這個(gè)編寫程序的時(shí)候很有用
B 大括號(hào),編寫程序的時(shí)候也很有用
" ' `引號(hào)內(nèi)
還可以在命令行下對(duì)選區(qū)范圍內(nèi)字符進(jìn)行操作
:'<,'>
這次是字符可視化模式,那么行可視化模式是什么意思呢???
下次再說 *
[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (https://gitee.com/overmind1980/oeasyvim)
[藍(lán)橋?qū)嶒?yàn)樓 邀請(qǐng)碼FJWYIMGB] (https://www.lanqiao.cn/courses/2840)