什么是网站功能需求,网页设计书籍推荐,网站顶部有空白,中国最新军事新闻文章目录 Section 3#xff1a;Vim Essentials#xff08;Vim 核心知识#xff09;S03L10 Vim 核心浏览命令同步练习点评课S03L11 Deleting Text and Thinking in Vim 文本的删除及 Vim 思维习惯的培养1 删除单个字符2 删除一个单词2.1 推广1#xff1a;D HJK… 文章目录 Section 3Vim EssentialsVim 核心知识S03L10 Vim 核心浏览命令同步练习点评课S03L11 Deleting Text and Thinking in Vim 文本的删除及 Vim 思维习惯的培养1 删除单个字符2 删除一个单词2.1 推广1D HJKL2.2 推广2D 0$2.3 推广3大写的 D 3 删除一整行3.1 推广1删除 3 行3.2 推广2[count]operation[count]{motion} 4 点操作符 .5 保存文件相关操作5.1 编辑过程中报错文件5.2 保存并退出文件5.3 退出文件且不保存变更 6 感叹号键 ! 的用法6.1 用法1强制执行6.2 用法2切换状态6.3 用法3执行某个命令行命令 7 小结 【写在前面】 都说“温故而知新”用在这篇笔记上真是太贴切了。第一遍做笔记的时候还检查过一遍但这次再以专栏形式发出来、隔了一段时间再看当时的笔记就会发现很多细小的问题。笔记、文章、代码、项目生活中的很多人和事大抵如此。我们要做的不是毕其功于一役而是“先完成再完美”。这篇笔记的知识点非常重要重点在于培养 Vim 专属的思维习惯这也是我为什么把同步练习环节安排到下一篇的原因。 Section 3Vim EssentialsVim 核心知识
接上篇笔记
S03L10 Vim 核心浏览命令同步练习点评课
没有需要特别注意的补充知识点都是基础操作多练多熟悉即可。 S03L11 Deleting Text and “Thinking in Vim” 文本的删除及 Vim 思维习惯的培养
1 删除单个字符
删除当前光标所在的单个字符X
删除当前光标所在字符的前一个字符Shift X
2 删除一个单词
DW删除一个单词 1
Vim 基本形式operation{motion} 操作{移动} ——
这里的 操作 即 D表示 “删除操作”移动 即 W这里表示 一个单词的移动。
2.1 推广1D HJKL
此外由于浏览内容用的 H、J、K、L 命令也是一个 motion因此DW 还可以写成 D n × L即若干个 L 键直到该单词被删除。
再联系 X 的用法
小写 X 相当于 DL删除光标当前位置的字符大写 X 则相当于 DH删除紧挨光标前的那个字符。
那么DJ 和 DH 呢由于 J 的移动量是从上一行到下一行如下图所示因此 DJ 是否只会删除图中选中的部分 【图 11-1 J 键产生的光标位移效果】
答案是否定的—— DJ 删除的是光标所在的 一整行外加光标下面的那 一整行如图 11-2 所示 【图 11-2 按下 dj 后的实际效果删除了两行而不是单独的 J 选中的部分】
因此基本形式中的 motion 还不能简单理解为 位移量而是要看当时 motion 的真实含义J 表示将光标从 当前行向下 移动 一行因此删除的是两行而非单个 J 键扫过的部分。
同理DK 的效果即为 删除当前行以及上一行。
2.2 推广2D 0$
有了上面的铺垫D0 和 D$ 的行为就更好理解了二者分别删除当前光标到该行起始、以及该行结束的内容
# 0. Before operation
Here is another line of text.^ current cursor position
# 1. after pressing d0
ther line of text.
^ current cursor position
# 2. after pressing d$ (no content)
Here is ano^ current cursor position注意执行 d$ 后原光标所在的字符 也将被同时删除。
2.3 推广3大写的 D
在 Vim 中大写的 D即 Shift D等效于 D$即删除当前光标及其后面所有的内容在同一行上
可见Vim 中要达到同一个目的通常有很多操作方案根据个人喜好选择即可。自己熟悉的操作才更容易记牢。
3 删除一整行
按键DD均为小写
3.1 推广1删除 3 行
按键3DD
由此出现了 Vim 的另一个基本形式[count]operation{motion}[数量]操作{移动}——
5DW
5重复操作的次数DW待重复命令删除单个单词
其实 DW 只是 1DW 省略了重复次数 1 之后的特殊形式。
3.2 推广2[count]operation[count]{motion}
回忆 L08 中介绍的核心浏览操作{motion} 前还可以跟一个数量[count]{motion}因此结合第二个 Vim 基本形式得到第三种推广形式[count]operation[count]{motion}
注这里的中括号 [] 表示非必填项{} 则为必填项什么都不加的也是必填项。
再看一个例子加深印象
3W重复 W 移动 3 次。D3W删除 3W 移动一遍。即删除 3 个单词。2D3W删除 3W 移动共执行两遍。即删除 6 个单词。
4 点操作符 .
表示快速重复上一次操作。类似 MS Word 中的 Ctrl Y。
5 保存文件相关操作
5.1 编辑过程中报错文件
操作:w Enter
执行完毕后仍在 Vim 常规模式下。 【图 11-3 在不退出 Vim 的情况下保存文件的操作】
5.2 保存并退出文件
操作:wq Enter
5.3 退出文件且不保存变更
操作:q! Enter
6 感叹号键 ! 的用法
6.1 用法1强制执行
例如退出但不保存:q ! Enter
此时文件有变更只是不保存、直接退出。
如果此时省略叹号变成 :q Enter则 Vim 会再次确认是否真的想退出并给出提示信息如图所示 【图 11-4 有变更但未强制退出时Vim 会中断操作并给出中文提示信息】 【图 11-5 有变更但未强制退出时Vim 会中断操作并给出英文提示信息】
上面两张截图第一张是 Windows 下安装的 v9.1 版 Vim第二张为 Windows Subsystem for LinuxWSL下 Ubuntu 系统自带的 v8.1 版 Vim。二者效果一致都会中断操作。
6.2 用法2切换状态
如配置状态栏的信息显示与否时可以使用 :set ruler ! 来切换 :set ruler 和 :set noruler 两个状态。
6.3 用法3执行某个命令行命令
后面详述本节略
7 小结
Vim 的三个基本形态
基本形态示例operation{motion}DW[count]operation{motion}3DW[count]operation[count]{motion}2D3W
感叹号的三个用法
感叹号用法示例强制退出:q!状态切换命令模式下:set ruler!执行命令命令模式下:!ls查看当前目录的文件列表2 准确讲应该是从 当前光标位置 开始将按下小写 W 键经过的内容都删掉。 ↩︎ 来自 ChatGPT本节未涉及。 ↩︎