VIM下的普通模式的相关知识
什么为一次操作?
从进行插入模式开始,直到返回普通模式为止,在此期间的任何修改都视为一次操作; 使用 u 可以撤销最新的修改;
所以呢,控制好在插入模式的操作就可以控制好撤销命令的粒度;
另外,最好在插入模式下避免使用上下左右进行移动,因为它们都可以产生一个新的插入块;
还有,在插入模式下,进行换行时,我们可以避免使用回车键,而是先退出插入模式再添加下一行;
技巧1 : 构造可重复的修改; 可以后面会用于相同的修改了;
技巧2:用次数作简单的运算:
很多的普通模式的命令都可以带一个次数前缀,这样VIM就可以深度把该命令执行指定的次数了;
而 ctrl+a 与 ctrl+x 表示对数字加减一次,所以可以在前面加入数字表示加减多次;
当光标不在数字上时,它会默认地去在当前行正向查找一个数字。 所以呢,没有必要光标一定在数字上,这是一个快捷;
注意:在vim中,当数字以0开头时,会被认为这是8进制的;
技巧3:能够重复 就别在前面加入数字使用次数;
原因在于吧,当我们在前面加入数字使用次数时,我们还需要花时间数一下次数上;
技巧4:双剑合璧,天下无敌
各种操作符与动作的命令的组合使用很强大的。
如各种的操作符:
- c 修改;
- d 删除;
- y 复制到寄存器;
- g~ 反转大小写;
- gU 转换为大写;
- gu 转换为小写;
- > 增加缩进;
- < 减少缩进;
- = 自动缩进;
操作符后面都可以跟这个表示范围的指令:
- l: 表示一个字符,可以于操作符组合使用;
- aw :表示一个单词; 不会count 空格; 前面可以加数字的;
- iw: 选中一些单词, 会包括空格; 前面可以加数字;
- ap: 表示一个段落,与操作符组合使用;
操作符后面也可以跟这些跳转动作指令:
- G键是跳转命令。默认跳到最后一行;前面可以加数字的;表示跳到第几行;
- gg键为跳转命令,默认跳到第一行,前面可以加数字,表示跳到第几行;
- 0: 跳转命令,跳到行首 ;
- $: 表示跳到行尾;
- w: 表示跳转到下一个单词的头部;
- e: 表示跳转到下一个单词的尾部;
- b: 表示跳转到上一个单词的头部;
- ge: 表示跳转到上一位单词的尾差部;
另个,也可以使用一些插件自定义的操作符;
如果使用它们,应该安装插件;
参考:VIM实用技巧,第二版,作者:Drew Neil;翻译:杨源, 车文隆;
VIM下的普通模式的相关知识的更多相关文章
- OpenCV&Qt学习之四——OpenCV 实现人脸检测与相关知识整理
开发配置 OpenCV的例程中已经带有了人脸检测的例程,位置在:OpenCV\samples\facedetect.cpp文件,OpenCV的安装与这个例子的测试可以参考我之前的博文Linux 下编译 ...
- 一张思维导图带你梳理HashMap相关知识
HashMap可以说是java中最常见也是最重要的key-value存储结构类,很多程序员可能经常用,但是不一定清楚这个类背后的数据结构和相关操作原理,为了复习HashMap相关的知识,今天花了一天的 ...
- 代码编辑器[0] -> Vim/gVim[2] -> Vim 的相关知识
相关知识 / Relevant Knowledge 1 _vimrc编程 / _vimrc Program 1. 注释符", 用于注释 2. 关键词set, 用于设置功能等 3. 关键词im ...
- Vim编译器的相关知识
Vim编译器相关知识 1.关于Vim编译器 在热门Linux操作系统中都会默认安装一款超好用的文本编辑器——名字叫“vim”,vim是vi编辑器的升级版. vim 具有程序编辑的能力,可以主动的以字体 ...
- 使用Nginx+uwsgi在亚马逊云服务器上部署python+django项目完整版(二)——部署配置及相关知识
---恢复内容开始--- 一.前提: 1.django项目文件已放置在云服务器上,配置好运行环境,可正常运行 2.云服务器可正常连接 二.相关知识 1.python manage.py runserv ...
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...
- 【转】java NIO 相关知识
原文地址:http://www.iteye.com/magazines/132-Java-NIO Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的 ...
- iOS网络相关知识总结
iOS网络相关知识总结 1.关于请求NSURLRequest? 我们经常讲的GET/POST/PUT等请求是指我们要向服务器发出的NSMutableURLRequest的类型; 我们可以设置Reque ...
- 地址标记,SpringMVC转发与调用相关知识存档
1.mytest_mavenprj1中,index的 <a href="login/login.html">点击登录</a> 与 <a href=&q ...
随机推荐
- HTML5学习笔记(二十三):DOM应用之动态加载脚本
同步加载和执行JS的情况 在HTML页面的</body>表情之前添加的所有<script>标签,无论是直接嵌入JS代码还是引入外部js代码都是同步执行的,这里的同步执行指的是在 ...
- [Windows Azure] Windows Azure Identity
Windows Azure Identity Managing identity is just as important in the public cloud is it is on premis ...
- JAVA Zero Copy的相关知识【转】
转自:https://my.oschina.net/cloudcoder/blog/299944 摘要: java 的zero copy多在网络应用程序中使用.Java的libaries在linux和 ...
- 【嵌入式】FS2410非操作系统外围资源测试
在刚接触FS2410时,其实这个测试也没有多大意义,但是对于以后来说,当一个产品做成功时,产品测试还是一个必须经过的一个阶段,所以这个流程还是有必要走一下! 在非操作系统下,主要进行RTC测试,按键测 ...
- maven pom属性 详解
pom.xml文件(实践用):<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="htt ...
- linux跑火车的命令sl
http://forum.ubuntu.org.cn/viewtopic.php?t=250890 ubuntu下可以通过 apt-get install sl 安装.执行sl会出来什么呢?帖一下: ...
- libXext.so.6: cannot open shared object file:
在64位的centos安装64位的oracle的时候,有时候会出现“libXext.so.6: cannot open shared object file:”的错误. 这个原因主要是oracle在安 ...
- 基于9款CSS3鼠标悬停相册预览特效
基于9款CSS3鼠标悬停相册预览特效里面包含九款不同方式的相册展开特效代码.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class="albums&q ...
- matplotlib-plot-style
style 1.绘制x=1 2.不同线宽 enumerate(Widths) 3.线型(实线,虚线,点划线) linestyle set_dashes 4.自动设置线颜色 5.点的显示形式 marke ...
- 调整Intellij IDEA内存
最近IDEA真是卡的要死,下面