IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Vim使用技巧(第2版)第二章笔记:技巧7 - 技巧12 -> 正文阅读

[开发工具]Vim使用技巧(第2版)第二章笔记:技巧7 - 技巧12

第2章:普通模式

技巧 7 停顿时请移开画笔

就像画家只花一小部分时间涂色一样,程序员也只花一小部分时间编写代码。绝大多数时间用来思考、阅读,以及在代码中穿梭浏览。而且,当确实需要做修改时,谁说一定要切换到插入模式才行?我们可以重新调整已有代码的格式,复制它们,移动其位置,或是删除它们。在普通模式中,我们有众多的工具可以利用。

技巧 8 把撤销单元切成块

在 Vim 中,我们自己可以控制撤销的粒度。

u键会触发撤销命令,它会撤销最新的修改。
i{insert some text}<Esc> 是一次修改。
输入模式下换行操作<CR><Esc>o

在插入模式中移动光标会重置修改状态

当我提到撤销命令会回退从进入插入模式到退出此模式期间输入(或删除)的全部字符时,我略过了一个小细节。如果在插入模式中使用了 <Up><Down><Left><Right> 这些光标键,将会产生一个新的撤销块。你可以把这想象为先切换回普通模式,然后用 hjkl 命令对光标进行了移动,唯一区别是我们并没有退出插入模式。这也会对 . 命令的操作产生影响。

技巧 9 构造可重复的修改

Vim 对重复操作进行了优化,要利用这一点,我们必须考虑该如何构造修改。

反向删除{start}dbx: 按db命令删除从光标起始位置到单词开头的内容,但会原封未动地留下最后一个字符 “h”,再按一下 x 键就可以删除这个捣乱的字符。

在这里插入图片描述

正向删除{start}bdw:我们先用 b 命令把光标移到单词的开头,移动好后,就可以用一个 dw 命令删掉整个单词。

在这里插入图片描述

删除整个单词{start}dawaw 文本对象(text object),你可以把 daw 命令解读为“delete a word”。

在这里插入图片描述

技巧 10 用次数做简单的算术运算

大多数普通模式命令可以在执行时指定次数,我们可以利用这个功能来做简单的算术运算。

很多普通模式命令都可以带一个次数前缀,这样 Vim 就会尝试把该命令执行指定的次数,而不是只执行一次
<C-a><C-x>命令分别对数字执行加和减操作。
行 yyp 来复制一行。

在这里插入图片描述

技巧 11 能够重复,就别用次数

在处理某些特定工作时,使用次数可以使按键次数变得最少,不过我们并不是非得这样不可。我们需要认真考虑次数与重复各自的优缺点。

删除两个单词:

  • 方法一:d2w

  • 方法二:2dw

  • 方法三:dw.

方法三颗力度更高,可重复性更强,所以选择第三种方法。

只在必要时使用次数

技巧 12 双剑合璧,天下无敌

Vim 的强大很大程度上源自操作符与动作命令相结合。

操作符 + 动作命令 = 操作

d{motion} 命令可以对一个字符(dl)、一个完整单词(daw)或一整个段落(dap)进行操作,它作用的范围由动作命令决定。c{motion}y{motion}以及其他一些命令也类似,它们被统称为操作符(operator)。

g~gu gU 命令要用两次按键来调用,我们可以把上述命令中的 g 当做一个前缀字符,用以改变其后面的按键行为。

操作符与动作命令的结合形成了一种语法,即一个操作由一个操作符,后面跟一个动作命令组成。

命令用途
C修改
d删除
y复制到寄存器
g~反转大小写
gu转换为小写
gU转换为大写
>增加缩进
<减小缩进
=自动缩进
!使用外部程序过滤{motion}所跨越的行

注释命令以 \\{motion} 触发,它会切换指定行的注释状态。它是一个操作符命令,因此可以把它和所有动作命令结合在一起。\\ap 将切换当前段落的注释状态,\\G 会把从当前行到文件结尾间的所有内容注释掉,而 \\\ 则注释当前行。

在这里插入图片描述
在这里插入图片描述

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-18 17:51:32  更:2022-05-18 17:52:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 14:53:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码