天天看點

oeasy教您玩轉vim - 56 - # 字元可視化模式可視化編輯

我們學習了關于模式比對中使用參數

單個參數

<code>:%s/&amp;lt;h2&amp;gt;\(.*\)&amp;lt;/h2&amp;gt;/ - \1/g</code>

多個參數

<code>:%s/&amp;lt;img src=\"\(.*\)\" title=\"\(.*\)\" \/&amp;gt;/[!\2]\1</code>

非貪婪比對

<code>:%s/&amp;lt;a rel="nofollow" href=\"\(.\{-\})\"&amp;gt;\(.\{-\}\)&amp;lt;\/a&amp;gt;/[\2]\1/g</code>

我們這回會遇到一種新的模式

什麼模式呢?

我們先回憶一下已經了解的模式

我們先回顧一下以前學過的模式

正常模式

插入模式

替換模式

指令行模式

今天的新模式是<code>可視化模式</code>

其實可視化對應三種可視化

字元可視化 &lt;kbd&gt;v&lt;/kbd&gt;

行可視化 &lt;kbd&gt;v&lt;/kbd&gt;

塊可視化&lt;kbd&gt;ctrl&lt;/kbd&gt;+&lt;kbd&gt;v&lt;/kbd&gt;

oeasy教您玩轉vim - 56 - # 字元可視化模式可視化編輯

&lt;kbd&gt;v&lt;/kbd&gt;進入

還是可以用 <code>{motion}</code> 移動光标

從開始位置到目前光标位置文本高亮顯示

相當于把選擇範圍高亮顯示

在左下角顯示<code>可視</code>

意味着進入了<code>可視-字元模式</code>

可以用&lt;kbd&gt;o&lt;/kbd&gt;切換首尾

控制選擇範圍

oeasy教您玩轉vim - 56 - # 字元可視化模式可視化編輯

為什麼要有可視化模式?

因為很多時候移動工具不直覺

oeasy教您玩轉vim - 56 - # 字元可視化模式可視化編輯

可視化

明确點兒可以叫做選擇範圍可視化

像這樣很容易就知道自己所選擇的範圍

然後就可以進行相關操作了

做什麼操作呢?

在可視化模式也可以進行編輯操作

相當于對于選好的内容進行操作

選好了之後,

&lt;kbd&gt;d&lt;/kbd&gt;

删除所選文本

&lt;kbd&gt;c&lt;/kbd&gt;

修改所選文本

删除選中的文本

然後輸入想要的内容

&lt;kbd&gt;r&lt;/kbd&gt;

替換所選文本

将選中的文本替換成單個字元

&lt;kbd&gt;i&lt;/kbd&gt;

在所選文本前插入

&lt;kbd&gt;a&lt;/kbd&gt;

在所選文本後插入

&lt;kbd&gt;g&lt;/kbd&gt;&lt;kbd&gt;u&lt;/kbd&gt;

所選區域轉為小寫

所選區域轉為大寫

&lt;kbd&gt;g&lt;/kbd&gt;&lt;kbd&gt;~&lt;/kbd&gt;

所選區域大小寫互調

&lt;kbd&gt;&gt;&lt;/kbd&gt;

所選區域對應的行向右縮進一個 <code>shiftwidth</code>

&lt;kbd&gt;&lt;&lt;/kbd&gt;

所選區域對應的行向左縮進一個 <code>shiftwidth</code>

這個和我們常用的相似

大小寫不同

d隻删除選中的字元

而d删除選中字元所在行的所有字元,包含結尾的換行符号

c 和 c 、 y 和 y 同理

可以在前面添加 <code>"a</code> 指定 <code>寄存器a</code>

oeasy教您玩轉vim - 56 - # 字元可視化模式可視化編輯
oeasy教您玩轉vim - 56 - # 字元可視化模式可視化編輯

vaw可以進入字元可視模式,并選中單詞

vaw

a word (with white space)

包含空格的一個word

iw

inner word

不包含空格的word

as

a sentence (with white space)

包含空格一個句子

is

inner sentence

不包含空格一個句子

ap

a paragraph (with white space)

包含空格一個段落

ip

inner paragraph

一個段落

ab

a () block (with parenthesis)

一個小括号包圍的塊,含括号

ib

inner () block

不包含括号的一個塊

a {} block (with braces)

一個大括号包圍的塊,含括号

inner {} block

一個大括号包圍的塊

at

a &lt;tag&gt; &lt;/tag&gt; block (with tags)

一個标簽包圍的塊,含标簽

it

inner &lt;tag&gt; &lt;/tag&gt; block

一個标簽包圍的塊,不含标簽

a&lt;

a &lt;&gt; block (with &lt;&gt;)

一個尖括号包圍的标簽,含标簽

相當于at

i&lt;

inner &lt;&gt; block

一個尖括号包圍的标簽,不含标簽

相當于it

a[

a [] block (with [])

中括号包含的塊,含中括号

i[

inner [] block

中括号包含的塊,不含中括号

a"

a double quoted string (with quotes)

雙引号括号包含的塊,含雙引号

i"

inner double quoted string

雙引号括号包含的塊,不含雙引号

a'

a single quoted string (with quotes)

單引号括号包含的塊,含單引号

i'

inner simple quoted string

單引号括号包含的塊,不含單引号

a`

a string in backticks (with backticks)

反引号括号包含的塊,不含反引号

i`

inner string in backticks

選好選區後

&lt;kbd&gt;:&lt;/kbd&gt;

左下角會出現:'&lt;,'&gt;

就是從選區開頭,到選區結尾

'&lt; 選區開頭

'&gt; 選區結尾

然後我們摁下&lt;kbd&gt;d&lt;/kbd&gt;回車

就把選區範圍内都删除了

我們可以<code>:h '&amp;lt;</code> 檢視相應手冊

oeasy教您玩轉vim - 56 - # 字元可視化模式可視化編輯

今天我們了解到可視模式,其實可視化對應三種子模式

字元可視模式 &lt;kbd&gt;v&lt;/kbd&gt;

行可視模式 &lt;kbd&gt;v&lt;/kbd&gt;

塊可視模式&lt;kbd&gt;ctrl&lt;/kbd&gt;+&lt;kbd&gt;v&lt;/kbd&gt;

我們先來了解字元可視化模式

快捷鍵 &lt;kbd&gt;v&lt;/kbd&gt;

可配合各種 <code>motion</code>

&lt;kbd&gt;o&lt;/kbd&gt;切換首尾

字元可視化就是把選擇範圍可視化

快速操作

選中了之後可以進行

&lt;kbd&gt;y&lt;/kbd&gt;

可以用&lt;kbd&gt;"&lt;/kbd&gt;&lt;kbd&gt;a&lt;/kbd&gt;使用指定寄存器

可以用<code>i</code>和<code>a</code>快速選擇範圍

w 小詞 w 大詞

()[] {} 各種括号

t 标簽,編寫網頁的時候很有用

s 句子 p 段落

b 小括号,這個編寫程式的時候很有用

b 大括号,編寫程式的時候也很有用

" ' `引号内

還可以在指令行下對選區範圍内字元進行操作

<code>:'&amp;lt;,'&amp;gt;</code>

這次是字元可視化模式,那麼行可視化模式是什麼意思呢?🤔

下次再說 👋

[github位址] (https://github.com/overmind1980/oeasyvim)

[gitee位址] (https://gitee.com/overmind1980/oeasyvim)

[藍橋實驗樓 邀請碼fjwyimgb] (https://www.lanqiao.cn/courses/2840)