Vim使用技巧——第一章 Vim解决问题的方式

ops/2024/12/23 5:59:38/

1、认识 . 命令

. 命令可以“重复上次修改”。

x 会删除光标下字符

u 撤销上次下修改

dd 删除当前行

>G 增加从当前行到文档末尾的缩进层级

. 命令是一个微型的宏

2、不要自我重复

对于在行尾添加内容的常见操作,如添加分号,vim提供了合并操作。

a 在当前光标之后添加内容

A($a) 在当前行的结尾添加内容

复合命令等效的长命令效果
Cc$将光标所在位置到行尾的内容删除,并插入
scl删除光标下的字符,并进入插入模式
S^C删除光标所在行的所有内容,并进入插入模式
I^i跳转到下一个插入位置
A$a光标移动到当前行的末尾,并进入插入模式
oA<CR>~
Oko在当前行的上方插入一个新行,并进入插入模式

3、以进为退

在一个字符前后各添加一个空格。

f{char} 查找下一个字符出现位置

;重复查找上次 f 命令所查找的字符

s 删除当前下光标字符,并进入插入模式

;带到下一个目标字符,. 重复上次修改

4、执行、重复、回退

除了.命令可以重复以外,@:可以用来重复任意Ex命令,也可以&来重复上次的:substitute命令

对于.命令而言,可以按u撤销上次的修改。

使用f{char}命令之后,可以用回跳,反方向查找上次f{char}所查找的字符。

表 1-1 可重复的操作及如何回退

目的操作重复回退
做出一个修改{edit}.u
在行内查找下一指定字符f{char}/t{char};,
在行内查找上一指定字符F{char}/T{char};,
在文档内查找下一处匹配项/pattern<CR>nN
在文档内查找上一处匹配项?pattern<CR>nN
执行替换:s/target/replacement/g&u
执行一些列修改qx{changes}q@xu

5、查找并手动替换

:%s/target/replacement/g 一次性替换所有,/g:这个标志表示替换操作是全局的,即在每一行中所有出现的 target 都会被替换。如果省略 g,只会替换每行中的第一个匹配项。

但有些时候你不想进行全局替换?

* 可以查找当前光标下的单词,n会跳到下一个匹配项。

cw会删除从光标位置到单词结尾间的字符,并进入插入模式。


http://www.ppmy.cn/ops/113443.html

相关文章

vulhub搭建漏洞环境docker-compose up -d命令执行报错以及解决方法汇总

在利用vulhub靶场搭建环境进行漏洞复现时&#xff0c;我们通常要使用这一步命令&#xff1a; docker-compose up -d 但是经常报错&#xff0c;今天我们来说几个常见的报错以及解决方法&#xff1a; 1.报错提示&#xff1a; ERROR: Couldnt connect to Docker daemon at httpdoc…

Vue|mixin混入

目录 mixin混入什么是mixin代码准备如何混入?全局混合 在 Vue 中&#xff0c;混入&#xff08;Mixins&#xff09;是一种灵活的分发功能&#xff0c;可以将可复用的代码片段和功能注入到多个组件中。简单来说&#xff0c;混入允许你在多个组件之间共享逻辑&#xff0c;而无需重…

DEPLOT: One-shot visual language reasoning by plot-to-table translation论文阅读

文章链接&#xff1a;https://arxiv.org/abs/2308.01979http://arxiv.org/abs/2212.10505https://arxiv.org/abs/2308.01979 源码链接&#xff1a;https://github.com/cse-ai-lab/RealCQA 启发&#xff1a;two-stage方法可能是未来主要研究方向&#xff0c;能够增强模型可解释…

LeetCode[中等] 142. 环形链表 II

给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整…

微信小程序点赞动画特效实现

这里提供两种实现点赞动画特效的方法&#xff1a; 方法一&#xff1a;使用 CSS 动画 wxml 文件: <view class"like-container"><image src"{{isLiked ? likedImg : unlikedImg}}" class"like-icon {{isLiked ? liked : }}" bindta…

C++的初阶模板和STL

C的初阶模板和STL 回顾之前的内存管理&#xff0c;我们还要补充一个概念&#xff1a;内存池 也就是定位new会用到的场景&#xff0c;内存池只会去开辟空间。 申请内存也就是去找堆&#xff0c;一个程序中会有很多地方要去找堆&#xff0c;这样子效率会很低下&#xff0c;为了…

图说几何学2300年重大错误:附着在直线z上的直线段必是z的一部分

黄小宁 用泡沫塑料和油漆制成的铅球与真正的铅球&#xff0c;两者有不同的内部形状。同样&#xff0c;数学有长度相同但内部形状不同的伪≌直线段。 几何学有史2300年来一直认定附着在直线z上的直线段一定是z的一部分。其实这是2300年肉眼直观错觉——百年病态集论的症结。 …

【Linux取经之路】编译器gcc/g++的使用 调试器gdb的使用

目录 背景知识 编译器gcc/g的安装 编译器gcc/g的使用 调试器gdb的使用 cgdb 条件断点 背景知识 子曰&#xff1a;“温故而知新”。在谈gcc/g的使用之前&#xff0c;我们先来复习编译的4个阶段&#xff0c;也算是为下面的内容做一些铺垫&#xff0c;请看思维导图。 编译…