我們學習了關于模式比對中使用參數
單個參數
<code>:%s/&lt;h2&gt;\(.*\)&lt;/h2&gt;/ - \1/g</code>
多個參數
<code>:%s/&lt;img src=\"\(.*\)\" title=\"\(.*\)\" \/&gt;/[!\2]\1</code>
非貪婪比對
<code>:%s/&lt;a rel="nofollow" href=\"\(.\{-\})\"&gt;\(.\{-\}\)&lt;\/a&gt;/[\2]\1/g</code>
我們這回會遇到一種新的模式
什麼模式呢?
我們先回憶一下已經了解的模式
我們先回顧一下以前學過的模式
正常模式
插入模式
替換模式
指令行模式
今天的新模式是<code>可視化模式</code>
其實可視化對應三種可視化
字元可視化 <kbd>v</kbd>
行可視化 <kbd>v</kbd>
塊可視化<kbd>ctrl</kbd>+<kbd>v</kbd>
<kbd>v</kbd>進入
還是可以用 <code>{motion}</code> 移動光标
從開始位置到目前光标位置文本高亮顯示
相當于把選擇範圍高亮顯示
在左下角顯示<code>可視</code>
意味着進入了<code>可視-字元模式</code>
可以用<kbd>o</kbd>切換首尾
控制選擇範圍
為什麼要有可視化模式?
因為很多時候移動工具不直覺
可視化
明确點兒可以叫做選擇範圍可視化
像這樣很容易就知道自己所選擇的範圍
然後就可以進行相關操作了
做什麼操作呢?
在可視化模式也可以進行編輯操作
相當于對于選好的内容進行操作
選好了之後,
<kbd>d</kbd>
删除所選文本
<kbd>c</kbd>
修改所選文本
删除選中的文本
然後輸入想要的内容
<kbd>r</kbd>
替換所選文本
将選中的文本替換成單個字元
<kbd>i</kbd>
在所選文本前插入
<kbd>a</kbd>
在所選文本後插入
<kbd>g</kbd><kbd>u</kbd>
所選區域轉為小寫
所選區域轉為大寫
<kbd>g</kbd><kbd>~</kbd>
所選區域大小寫互調
<kbd>></kbd>
所選區域對應的行向右縮進一個 <code>shiftwidth</code>
<kbd><</kbd>
所選區域對應的行向左縮進一個 <code>shiftwidth</code>
這個和我們常用的相似
大小寫不同
d隻删除選中的字元
而d删除選中字元所在行的所有字元,包含結尾的換行符号
c 和 c 、 y 和 y 同理
可以在前面添加 <code>"a</code> 指定 <code>寄存器a</code>
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 <tag> </tag> block (with tags)
一個标簽包圍的塊,含标簽
it
inner <tag> </tag> block
一個标簽包圍的塊,不含标簽
a<
a <> block (with <>)
一個尖括号包圍的标簽,含标簽
相當于at
i<
inner <> 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
選好選區後
<kbd>:</kbd>
左下角會出現:'<,'>
就是從選區開頭,到選區結尾
'< 選區開頭
'> 選區結尾
然後我們摁下<kbd>d</kbd>回車
就把選區範圍内都删除了
我們可以<code>:h '&lt;</code> 檢視相應手冊
今天我們了解到可視模式,其實可視化對應三種子模式
字元可視模式 <kbd>v</kbd>
行可視模式 <kbd>v</kbd>
塊可視模式<kbd>ctrl</kbd>+<kbd>v</kbd>
我們先來了解字元可視化模式
快捷鍵 <kbd>v</kbd>
可配合各種 <code>motion</code>
<kbd>o</kbd>切換首尾
字元可視化就是把選擇範圍可視化
快速操作
選中了之後可以進行
<kbd>y</kbd>
可以用<kbd>"</kbd><kbd>a</kbd>使用指定寄存器
可以用<code>i</code>和<code>a</code>快速選擇範圍
w 小詞 w 大詞
()[] {} 各種括号
t 标簽,編寫網頁的時候很有用
s 句子 p 段落
b 小括号,這個編寫程式的時候很有用
b 大括号,編寫程式的時候也很有用
" ' `引号内
還可以在指令行下對選區範圍内字元進行操作
<code>:'&lt;,'&gt;</code>
這次是字元可視化模式,那麼行可視化模式是什麼意思呢?🤔
下次再說 👋
[github位址] (https://github.com/overmind1980/oeasyvim)
[gitee位址] (https://gitee.com/overmind1980/oeasyvim)
[藍橋實驗樓 邀請碼fjwyimgb] (https://www.lanqiao.cn/courses/2840)