天天看點

oeasy教您玩轉vim - 59 - # 編輯總結可視化編輯

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

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

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

上次了解到塊可視模式

-<kbd>ctrl</kbd>+<kbd>v</kbd>

左下角<code>-- 可視 塊 --</code>

然後配合<code>motion</code>

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

這個塊可以有四個頂點

&lt;kbd&gt;O&lt;/kbd&gt;橫向切換

可以在選區内進行編輯和替換

可以直接&lt;kbd&gt;d&lt;/kbd&gt;、&lt;kbd&gt;c&lt;/kbd&gt;、&lt;kbd&gt;y&lt;/kbd&gt;

或者&lt;kbd&gt;D&lt;/kbd&gt;、&lt;kbd&gt;C&lt;/kbd&gt;、&lt;kbd&gt;Y&lt;/kbd&gt;

也可以直接編輯

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

<code>:'&amp;lt;,'&amp;gt;s/shiyanlou/oeasy/g</code> 範圍内批量替換

可以在塊·可視化模式下替換

<code>:'&amp;lt;,'&amp;gt;s/\%Vg/graphic/g</code>

'&lt;,'&gt;表示範圍

s表示substitute

\%V表示在塊内

文本編輯終于告一段落🤔

這次來總結總結

我們現在了解到有<code>5</code>種模式

預設模式 也叫正常模式 這是基礎

想要從别的模式回到正常模式

&lt;kbd&gt;ctrl&lt;/kbd&gt;+&lt;kbd&gt;c&lt;/kbd&gt;

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

從正常模式到指令行模式

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

從正常模式到插入模式者

&lt;kbd&gt;i&lt;/kbd&gt; 前插

&lt;kbd&gt;I&lt;/kbd&gt; 最前插

&lt;kbd&gt;a&lt;/kbd&gt; 後插

&lt;kbd&gt;A&lt;/kbd&gt; 最後插

&lt;kbd&gt;o&lt;/kbd&gt; 下面插一新行

&lt;kbd&gt;O&lt;/kbd&gt; 上面插一新行

從正常模式到替換模式

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

從正常模式到可視模式,分成三種

&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; 塊·可視

基本的編輯是<code>基本操作</code>+<code>基本運動</code>

常用的基本操作都是動作

小寫操作的是{range}

大寫操作的是行

具體指令

删除

&lt;kbd&gt;d&lt;/kbd&gt;、&lt;kbd&gt;D&lt;/kbd&gt;

&lt;kbd&gt;x&lt;/kbd&gt;、&lt;kbd&gt;X&lt;/kbd&gt;

複制

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

粘貼

&lt;kbd&gt;p&lt;/kbd&gt;、&lt;kbd&gt;P&lt;/kbd&gt;

剪切并切換到插入模式

&lt;kbd&gt;c&lt;/kbd&gt;、&lt;kbd&gt;C&lt;/kbd&gt;

基本運動都是方向

首行&lt;kbd&gt;g&lt;/kbd&gt; &lt;kbd&gt;g&lt;/kbd&gt; 、末行&lt;kbd&gt;G&lt;/kbd&gt; 、第n行&lt;kbd&gt;n&lt;/kbd&gt; &lt;kbd&gt;G&lt;/kbd&gt;

光标運動的方式是&lt;kbd&gt;h&lt;/kbd&gt; &lt;kbd&gt;j&lt;/kbd&gt; &lt;kbd&gt;k&lt;/kbd&gt; &lt;kbd&gt;l&lt;/kbd&gt;

這些方向都可以加上<code>[count]</code>翻倍

單詞運動<code>wbe</code>

&lt;kbd&gt;w&lt;/kbd&gt; 是到下一個<code>word</code>的開頭

&lt;kbd&gt;b&lt;/kbd&gt; 是到目前<code>word</code>的開頭

&lt;kbd&gt;e&lt;/kbd&gt; 是到目前<code>word</code>的結尾

除了<code>word</code>之外還有<code>WORD</code>

行頭行尾

&lt;kbd&gt;^&lt;/kbd&gt; 是到本行第一個非空字元

&lt;kbd&gt;0&lt;/kbd&gt; 是到本行第一個字元,不管是不是空格

&lt;kbd&gt;g&lt;/kbd&gt;&lt;kbd&gt;_&lt;/kbd&gt; 是到本行最後一個非空字元

&lt;kbd&gt;$&lt;/kbd&gt; 跳到本行最後一個字元,即使他是空格

行内跳躍和貼靠

向<code>前</code>跳躍是&lt;kbd&gt;f&lt;/kbd&gt;

向<code>後</code>跳躍是&lt;kbd&gt;F&lt;/kbd&gt;

向<code>前</code>貼靠是&lt;kbd&gt;t&lt;/kbd&gt;

向<code>後</code>貼靠是&lt;kbd&gt;T&lt;/kbd&gt;

全文查找

查找的話就是&lt;kbd&gt;/&lt;/kbd&gt;

反向查找的話就是&lt;kbd&gt;?&lt;/kbd&gt;

文本區塊

&lt;kbd&gt;{&lt;/kbd&gt;、&lt;kbd&gt;}&lt;/kbd&gt;按段落移動

&lt;kbd&gt;(&lt;/kbd&gt;、&lt;kbd&gt;)&lt;/kbd&gt;按句子移動

以in為範圍的操作

&lt;kbd&gt;c&lt;/kbd&gt;&lt;kbd&gt;i&lt;/kbd&gt;&lt;kbd&gt;w&lt;/kbd&gt;

&lt;kbd&gt;d&lt;/kbd&gt;&lt;kbd&gt;i&lt;/kbd&gt;&lt;kbd&gt;t&lt;/kbd&gt;

&lt;kbd&gt;y&lt;/kbd&gt;&lt;kbd&gt;i&lt;/kbd&gt;&lt;kbd&gt;b&lt;/kbd&gt;

&lt;kbd&gt;d&lt;/kbd&gt;&lt;kbd&gt;i&lt;/kbd&gt;&lt;kbd&gt;"&lt;/kbd&gt;

可以進行基本編輯

在&lt;kbd&gt;:&lt;/kbd&gt;下可以運作指令

&lt;kbd&gt;d&lt;/kbd&gt;、&lt;kbd&gt;D&lt;/kbd&gt;、&lt;kbd&gt;x&lt;/kbd&gt;、&lt;kbd&gt;X&lt;/kbd&gt;

可以在前面加上<code>range</code>

<code>:3,6d</code>

可以操作檔案 (讀、寫、編輯)

<code>:3,5w oeasy.txt</code>

<code>:1,3r oeasy.txt</code>

<code>:3,9w oeasy.txt</code>

<code>:3,9w oeasy.txt &amp;gt;&amp;gt;</code>

<code>:e .</code>

查找

<code>/oeasy</code>

<code>/^a.*b$</code> a開頭b結束的行

<code>/\&amp;lt;a.*b\&amp;gt;</code> a開頭b結束的單詞

替換

<code>:%s/shiyanlou/oeasy/gc</code>

<code>:3,9s/\&amp;lt;a.*b\&amp;gt;//gc</code> 3-9行中a開頭b結束的單詞都删除

<code>:g/oeasy/d</code>帶oeasy的都删除

可視模式的首尾切換

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

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

可以用<code>in</code>的方式制作選擇範圍

<code>vit</code>

<code>vi}</code>

<code>vib</code>

總共有三種可視化模式

字元可視化

行·可視化

塊·可視化

可以在選區裡面進行編輯操作

&lt;kbd&gt;d&lt;/kbd&gt;、&lt;kbd&gt;c&lt;/kbd&gt;、&lt;kbd&gt;y&lt;/kbd&gt;、&lt;kbd&gt;p&lt;/kbd&gt;

還可以進行替換

也可以在指令模式下對範圍進行操作

<code>:r !ls -lah</code>

使用指令<code>:2,15normal I001.</code>

注意是<code>001</code>,而不是1

&lt;kbd&gt;ctrl&lt;/kbd&gt;+&lt;kbd&gt;v&lt;/kbd&gt;選中<code>3-5</code>行的開頭字元

&lt;kbd&gt;g&lt;/kbd&gt;之後&lt;kbd&gt;ctrl&lt;/kbd&gt;+&lt;kbd&gt;a&lt;/kbd&gt;

<code>1111</code>變成<code>1234</code>

包括5種模式

正常、插入、指令行、可視化、替換

許多編輯指令

編輯指令可以配合<code>motion</code>和<code>in</code>

文本可以進行搜尋和替換

基本就這些吧!!!🧘🏻‍♂️

真是全面地大總結啊

可以在終端裡面玩開了

<code>shell</code> 下 運作 <code>vimtutor zh</code>

看看自己多久能夠通關

這是一個重大的關卡

做完了之後

我們繼續向前 👋