天天看点

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>

看看自己多久能够通关

这是一个重大的关卡

做完了之后

我们继续向前 👋