vim基础(二)
上一篇提到了插入与删除、定位、复制与粘贴以及退出与保存几项基本操作,这篇继续整理其他常用命令。
撤销与替换
首先是我们在输入过程中不小心打错了,或者误删了,怎么恢复?在word里我们有ctrl+Z,vim里就不一样了。以及代码里,某一个变量或函数的命名觉得不合适了,想更改,肯定不能一个个改,那具体有哪些命令呢?看下表:
| 命令 | 含义 |
|---|---|
| u | 撤销 |
| r | 替换光标处的字符 |
| R | 从光标处开始替换,直到按Esc为止 |
| :%s/old/new/g | 全文替换old字符串为new,g表示不询问 |
| :n1,n2s/old/new/c | 在n1和n2行之间替换old为new,c表示逐个询问 |
字符的定位
上篇中也提到了定位,不过那个是光标的定位,现在再来了解一下如果定位字符,也就是查找字符。
| 命令 | 含义 |
|---|---|
| /string | 查找string |
| n | 查找下一个 |
导入文档或命令
这应该算是高级一点的小技巧了,先给命令再解释吧
| 命令 | 含义 |
|---|---|
| :r path | 导入文档 |
| :r !shell command | 执行该命令 |
怎么说呢,比如我当前正在编辑一个配置文档,需要插入当前系统的版本信息,我们知道Linux的版本信息是存在/etc目录下的issue文件中的,所以只要在编辑模式下输入r /etc/issue就可以导入版本信息,比如我的系统是:
Ubuntu 18.04.1 LTS \n \l
同样,导入命令也是类似的,比如我现在要导入系统日期,输入r !date:
2018年 09月 02日 星期日 22:30:39 CST
Okay, 今天就整理这么多,只有多练习才能形成长期记忆哇~
vim基础(二)的更多相关文章
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
- Bootstrap <基础二十九>面板(Panels)
Bootstrap 面板(Panels).面板组件用于把 DOM 组件插入到一个盒子中.创建一个基本的面板,只需要向 <div> 元素添加 class .panel 和 class .pa ...
- Bootstrap <基础二十八>列表组
列表组.列表组件用于以列表形式呈现复杂的和自定义的内容.创建一个基本的列表组的步骤如下: 向元素 <ul> 添加 class .list-group. 向 <li> 添加 cl ...
- Bootstrap<基础二十七> 多媒体对象(Media Object)
Bootstrap 中的多媒体对象(Media Object).这些抽象的对象样式用于创建各种类型的组件(比如:博客评论),我们可以在组件中使用图文混排,图像可以左对齐或者右对齐.媒体对象可以用更少的 ...
- Bootstrap <基础二十六>进度条
Bootstrap 进度条.在本教程中,你将看到如何使用 Bootstrap 创建加载.重定向或动作状态的进度条. Bootstrap 进度条使用 CSS3 过渡和动画来获得该效果.Internet ...
- Bootstrap <基础二十五>警告(Alerts)
警告(Alerts)以及 Bootstrap 所提供的用于警告的 class.警告(Alerts)向用户提供了一种定义消息样式的方式.它们为典型的用户操作提供了上下文信息反馈. 您可以为警告框添加一个 ...
- Bootstrap<基础二十四> 缩略图
Bootstrap 缩略图.大多数站点都需要在网格中布局图像.视频.文本等.Bootstrap 通过缩略图为此提供了一种简便的方式.使用 Bootstrap 创建缩略图的步骤如下: 在图像周围添加带有 ...
- Bootstrap <基础二十三>页面标题(Page Header)
页面标题(Page Header)是个不错的功能,它会在网页标题四周添加适当的间距.当一个网页中有多个标题且每个标题之间需要添加一定的间距时,页面标题这个功能就显得特别有用.如需使用页面标题(Page ...
- Bootstrap <基础二十二>超大屏幕(Jumbotron)
Bootstrap 支持的另一个特性,超大屏幕(Jumbotron).顾名思义该组件可以增加标题的大小,并为登陆页面内容添加更多的外边距(margin).使用超大屏幕(Jumbotron)的步骤如下: ...
随机推荐
- luogu 3375 【模板】KMP字符串匹配
我太菜了 今天才学会kmp #include<iostream> #include<cstdio> #include<algorithm> #include< ...
- Oracle高水位线
Oracle高水位线 https://blog.csdn.net/jx_jy/article/details/50607790 Oracle高水位线的概念 Oracle里面的对象放到存储级别都称为se ...
- gitlab smtp设置
QQ exmail gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.exmail.qq.com ...
- jQuery:has()和jQuery:contains()及jQuery:empty
jQuery:has()和jQuery:contains()两个方法比较类似.不同点在于: has是判断标签的 contains是判断文本的 1.jQuery:has() <div>< ...
- E20170611-hm
ascending adj. 上升的,向上的; ascend vt. 攀登; 继承; 占领; vi. 上升; 爬坡; 追溯; descending n. 递减; descend v ...
- bzoj 1664: [Usaco2006 Open]County Fair Events 参加节日庆祝【dp+树状数组】
把长度转成右端点,按右端点排升序,f[i]=max(f[j]&&r[j]<l[i]),因为r是有序的,所以可以直接二分出能转移的区间(1,w),然后用树状数组维护区间f的max, ...
- 说说Charles
本文来源 https://blog.csdn.net/Aaroun/article/details/79109917 今天,给大家做一次分享,主要面向移动端测试,介绍了我平时接口开发工作中用到的功能. ...
- 搞定springboot项目连接远程服务器上kafka遇到的坑以及完整的例子
版本 springboot 2.1.5.RELEASE kafka 2.2 遇到的坑 用最新的springboot就要用最新的kafka版本! 当我启动云服务器上的zk后,再启动kafka后台日志也没 ...
- BFS(两点搜索) UVA 11624 Fire!
题目传送门 /* BFS:首先对火搜索,求出火蔓延到某点的时间,再对J搜索,如果走到的地方火已经烧到了就不入队,直到走出边界. */ /******************************** ...
- EasyUI tree 异步树与采用扁平化实现的同步树
所谓好记性不如烂笔头,为了以防忘记,才写下这篇博客,废话不多.. 异步树: tips: 可以采用easyui里的原始数据格式,也可以采用扁平化的数据格式. 使用场景: 当菜单模块数量庞大或者无限极 ...