Vim技巧之四大模式_插入模式

在前面的文章《Vim技巧之四大模式_普通模式》中我们提到过四大模式之中的一个的普通模式,今天我们继续讲讲Vim四大模式里面的插入模式

普通模式好比是发动一个技能。而插入模式则好比是一般的物理攻击,可是就算是平平淡淡的物理攻击,还是有不少的技巧可言的

在插入模式中及时更正错误

普通模式中,我们要更改一个错误的输入有很多种做法,我们能够直接点击u来撤消之前键入的内容,也能够用caw,ciwcb等等命令来将错误的输入进行及时的更改,可是假设我们在插入模式中想要及时的更改错误的输入,难道除了<Backspace>就没有其它的方法了么?

在很多流行的编辑器里面。比方Emacs,Sublime Text,假设发现输入错误,则能够<C-Backspace>来将删除前一个单词,在Emacs中还能够<C-k>将光标所在的整行数据删除,那在Vim里面有没有这样的便捷的操作呢?

按键操作 作用
<C-h>(Backspace) 删除前一个字符
<C-w> 删除前一个单词
<C-u> 删至行首

掌握了上面的技巧就能够不用回到普通模式也能够高速的更改数据了

插入-普通模式

插入模式的某些情况下我们仅仅是想运行普通模式以下的一条命令,然后继续输入数据,我们能够用<C-o>来回到普通模式,在运行完一条命令以后,立即就会返回到插入模式

(我个人还是比較喜欢直接<ESC>)

比方你在编辑文本的时候须要将正在编辑的该行文本居中(zz)或者是置顶(zt),你就能够<C-o>zz就能够啦。

在插入模式模式以下直接粘贴指定寄存器的内容

首先,我们须要知道什么是Vim寄存器。Vim的寄存器顾名思义就是用来寄存一些特定的数据或者是用户自己定义的数据,在我们须要的时候直接訪问寄存器就可以,在Vim里面输入:reg来查看寄存器中存放的内容

能够看到各种各样的寄存器,如需了解Vim寄存器。请看这里vim寄存器使用详细解释

比方当中比較经经常使用到的数字寄存器"[0-9],Vim将复制的数据保存到寄存器"0中。将删除的最新数据保存到"1中,旧的删除的数据将从前一个寄存器中移动到下一个寄存器中,比方当删除新的数据的时候时候,寄存器"1的数据将会转移到寄存器"2中。"2的转移到"3中,以此类推。最后将新的删除数据保存到"1中。

有些时候我们想粘贴之前就删除的数据(不是最新删除的数据),这时候使用p明显是不行的了,由于p仅仅粘贴最新的删除或者复制的数据,那么之前删除的数据就消失了么?事实上不然,Vim将会为我们保存九次删除操作的数据,仅仅要在插入模式下键入<C-r>{register}就能够粘贴register中的数据了,在普通模式下为"{register}p

举个栗子:

我们有以下的文本:

查看一下寄存器中的东西

我们要粘贴寄存器"8的数据。<C-r>8

注意:

使用<C-r>{register}粘贴的数据将会保留原有数据的缩进格式,假设你设置了testwidth或者是autoindent,那么就有可能出现不必要的缩进。

这时你就须要採用<C-r><C-p>{register}来单纯的插入数据,没有不论什么的缩进

插入模式中做运算

假设我们在插入模式中须要进行一些简单的运算,我们能够直接使用表达式寄存器"=来计算我们的表达式。并插入结果,详细使用方法为<C-r>={expression}<CR>,当中expression是我们须要计算的式子。比方1+2,10*6

举个栗子:

我们键入两个表达式:

借助表达式寄存器完毕基本计算

<C-r>=5+12<CR>

<C-r>=6*78<CR>

用字符编码插入很常使用字符

仅仅要我们知道某个字符的编码,Vim就能够直接插入这个字符,我们仅仅用在插入模式中输入<C-v>{code}就能够插入code相应的字符,比方<C-v>065就能够插入大写字母'A'

反之。假设你想知道某个字符的编码。你能够将光标移到该字符上。然后输入ga,屏幕下方就会显示该字符的编码了

替换已有的文本

Vim中,假设你想键入一段新的文本来替代原有的文本。那么Rr这两个命令你是不可不知的

命令 作用
R 从光标处開始替换文本直到按下<ESC>
r 替换当前的一个字符

举个栗子:

要将上面的Vimer改为loser,我们能够这样来改

0(移动到句首)

fV(移动到Vimer词首)

Rlos(将Vim改为los)

注意:

我们在使用替换的时候,Vim是将占有多个空格宽度的制表符当做是一个替换字符,于是我们在进行替换时就会有各种不希望出现的缩进。不正确齐。为了避免这样的情况,我们能够使用gR或者gr命令来进行替换操作,在gRgr替换中,Vim会将制表符当做一组空格来处理,详细的空格数要由制表符占用的空格宽度决定,这样的替换成为虚拟替换模式。

Vim技巧之四大模式_插入模式的更多相关文章

  1. Vim技巧之四大模式_普通模式

    Vim技巧之四大模式_普通模式 一见不钟情的普通模式 普通模式以下的强悍操作 什么是操作符 什么是动作命令 误操作怎么办 那种操作更划算 普通模式下的神奇大招 Vim技巧之四大模式_普通模式 众所周知 ...

  2. 在C#中,Windows Console控制台 设置控制台标题、禁用关闭按钮、关闭快速编辑模式、插入模式

    设置控制台标题 禁用关闭按钮 关闭快速编辑模式 关闭插入模式 设置控制台标题.禁用关闭按钮 #region 设置控制台标题 禁用关闭按钮 [DllImport("user32.dll&quo ...

  3. Notepad++输入模式之改动模式、插入模式

    notepad++光标是直的,怎样让它变成竖的? 通常光标是竖的.为插入模式,光标在字符之间时输入,内容会随输入的内容向后移动,新输入的内容不会替换后面的内容. 当按一下"Insert&qu ...

  4. Vim 的命令模式转插入模式

    一.在命令模式输入下面的快捷方式: i 在当前光标前插入字符: I 在当前行行首插入字符: a 在当前光标后插入字符: A 在当前行行尾插入字符: o 在当前行下面另起一新行: O 在当前行上面另起一 ...

  5. Redis_集群_主从模式_哨兵模式

    1.主从模式 2.哨兵模式

  6. vim 第三章 插入模式

    vim 第三章  插入模式 在普通模式下可以删除  复制   及粘贴的命令    在插入模式下也存在以中方便快捷的方式    能够粘贴寄存器中文本   两种方式来插入键盘上不存在的非常用字符 替换模式 ...

  7. [转] vi/vim命令模式和编辑模式各种操作

    摘要:vi 编辑器是最常用的文档创建和编辑工具,初学者应该学会简单应用vi ,学会在vi 中做简单的修改.删除.插入.搜索及替换作业:如果您是新手,不妨看看本文,或许这篇文档能让您在最短的时间内学会v ...

  8. 最佳vim技巧

    最佳vim技巧----------------------------------------# 信息来源----------------------------------------www.vim ...

  9. Vim使用技巧(2) -- 插入模式技巧 【持续更新】

    组合快捷键 Ctrl + h //删除前一个字母(同退格键) Ctrl + w //删除前一个单词 Ctrl + u //删除到行首 Esc //切换到普通模式 Ctrl + [ //切换到普通模式 ...

随机推荐

  1. hello world! hello cnbog

    第一次开通博客,以后见证我的成长吧!

  2. Jenkins学习总结(2)——Jenkins+Maven进行Java项目持续集成

    最近配置了Jenkins服务器,记录下基本过程.(当然还遇到了若干小问题,兵来将挡水来土掩就是了) Jenkins安装 安装Tomcat 从Jenkins官网下载jenkins.war文件.官网地址: ...

  3. 自己动手写SSO(单点登录)

    SSO在我们的应用中非常常见,例如我们在OA系统登录了,我们就可以直接进入采购系统,不需要再登录了,这样使我们非常方便.现在网上也有很多实现方法,于是乎我也想写一个看看.我主要用到的是cookie的机 ...

  4. 软考之路--从生活着手,看PV怎样操作

    PV操作.是软考其中一个非常重要的考点,一听到这个名词,顿时赶脚高大上有么有,在软考的历年试题中,也不乏PV操作的身影,老师也对PV操作进行了一次讲课,那时年少.听得稀里糊涂,也不是非常理解,在小编的 ...

  5. 【LeetCode-面试算法经典-Java实现】【144-Binary Tree Preorder Traversal(二叉树非递归前序遍历)】

    [144-Binary Tree Preorder Traversal(二叉树非递归前序遍历)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given a bina ...

  6. A. Keyboard Codeforces Round #271(div2)

    A. Keyboard time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...

  7. [NOI.AC#30]candy 贪心

    链接 一个直观的想法是,枚举最小的是谁,然后二分找到另外一个序列对应位置更新答案,复杂度 \(O(NlogN)\) 实际上不需要二分,因为每次当最大的变大之后,原来不行的最小值现在也一定不行,指针移动 ...

  8. 引用 Windows Server 2003 FTP服务器配置详解

    引用 昆神之星 的 Windows Server 2003 FTP服务器配置详解 1.FTP文件传输协议,主要用于计算机之间文件传输,是互联网上仅次于www的第二大服务.本文主要演示如何在Window ...

  9. ONVIF客户端搜索设备获取rtsp地址开发笔记(精华篇)

    原文  http://blog.csdn.net/gubenpeiyuan/article/details/25618177   概要: 目前ONVIF协议家族设备已占据数字监控行业半壁江山以上,亲, ...

  10. Monkey脚本编写

    脚本优势:简单.快捷.不需要借助任何工具,可以做简单的性能测试 脚本缺点:只能简单实现坐标.按键等基本操作,无逻辑性 脚本格式: