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

原创 2015年07月08日 00:16:45

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来查看寄存器中存放的内容

Alt text

可以看到各种各样的寄存器,如需了解Vim寄存器,请看这里vim寄存器使用详解

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

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

举个栗子:

我们有下面的文本:

Alt text

查看一下寄存器中的东西

Alt text

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

Alt text

注意:
使用<C-r>{register}粘贴的数据将会保留原有数据的缩进格式,如果你设置了testwidth或者是autoindent,那么就有可能出现不必要的缩进。这时你就需要采用<C-r><C-p>{register}来单纯的插入数据,没有任何的缩进
Alt text

插入模式中做运算

如果我们在插入模式中需要进行一些简单的运算,我们可以直接使用表达式寄存器"=来计算我们的表达式,并插入结果,具体用法为<C-r>={expression}<CR>,其中expression是我们需要计算的式子,比如1+2,10*6

举个栗子:

我们键入两个表达式:

Alt text

借助表达式寄存器完成基本计算
<C-r>=5+12<CR>
<C-r>=6*78<CR>

Alt text

用字符编码插入非常用字符

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

反之,如果你想知道某个字符的编码,你可以将光标移到该字符上,然后输入ga,屏幕下方就会显示该字符的编码了

替换已有的文本

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

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

举个栗子:
Alt text

要将上面的Vimer改为loser,我们可以这样来改
0(移动到句首)
fV(移动到Vimer词首)
Rlos(将Vim改为los)

Alt text

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

vim正常模式、插入模式、命令模式切换

主要介绍vim新建文件、退出保存文件的常用命令。 包括光标移动、编辑模式、正常模式、命令模式之间切换命令。...
  • qq_25262819
  • qq_25262819
  • 2015年07月21日 20:46
  • 5749

vim-1 vim的模式和vim的进入和退出

1、vim的模式 基本模式(6) 普通模式、插入模式、可视模式、选择模式、命令行模式、Ex模式。 派生模式(5) 操作符等待模式、插入普通模式、插入可视模式、插入选择模式、替换模式。 2、进入插入模式...
  • AlvinPanda
  • AlvinPanda
  • 2017年01月04日 23:48
  • 1778

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

Vim技巧之四大模式_插入模式 在插入模式中及时更正错误 插入-普通模式 在插入模式模式下面直接粘贴指定寄存器的内容 插入模式中做运算 用字符编码插入非常用字符 替换已有的文本Vim技巧之四大模式_插...
  • ii1245712564
  • ii1245712564
  • 2015年07月08日 00:16
  • 1770

vim退出插入模式

vim退出插入模式其实很简单的,直接按键盘Esc键就可以了,但是Esc键在键盘上布局位置比较远,取而代之的还有另外一种方式就是Ctrl +[....
  • cfanzp
  • cfanzp
  • 2016年01月16日 13:48
  • 608

VIM命令模式与输入模式切换

vi编辑器 vi是UNIX和类UNIX环境下的可用于创建文件的屏幕编辑器。vi有两种工作模式:命令模式和文本输入模式。启动vi需要输入vi,按[Spacebar]键并输入文件名后回车。 切换模式键...
  • hachirou
  • hachirou
  • 2012年07月19日 09:14
  • 49435

vim的四种模式及模式切换

vim和记事本或WORD不一样,不是一打开后就可以输入文字,此时它处于正常模式。 vim一共有4个模式: 正常模式 (Normal-mode) 插入模式 (Insert-mode)命令模式 (Co...
  • zhangzeyuaaa
  • zhangzeyuaaa
  • 2016年11月30日 10:24
  • 3866

[VIM]插入模式下的几个命令

插入模式只专注于输入文字信息。以下为在插入模式下的一些常用命令。 1. 插入模式下更正错误输入   按键操作     用途 Ctrl + H    删除前一个字符,相当于回格键backspace ...
  • champwang
  • champwang
  • 2015年08月14日 13:10
  • 1588

VIM中的插入操作命令小结

之前使用VIM,只知道一个i代表可以进入编辑界面的意思。其实,很多便捷的命令一直没有掌握,更没有使用过。其实,i只是插入命令中的一个。 总结一下VIM中的插入命令,后续渐渐地在练习中掌握并让其成为自...
  • grey_csdn
  • grey_csdn
  • 2017年04月06日 22:09
  • 811

解决Vim插入模式下backspace按键无法删除字符的问题

最近使用某个服务器编辑文件时,快捷键i进入插入模式后,下方不出现insert模式,却可以插入字符,但是backspace按键不能删除字符了,最终google解决了此问题,记录下解决办法: 1、在命令模...
  • zxy987872674
  • zxy987872674
  • 2017年03月20日 14:13
  • 1523

vim 列插入

vi 下,如何在每行中插入?(类似UltraEdit的列编辑) 1: 定位光标 2: CTRL+v             #进入Visual Mode。 3: j     ...
  • ermuzhi
  • ermuzhi
  • 2014年07月11日 10:07
  • 5496
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Vim技巧之四大模式_插入模式
举报原因:
原因补充:

(最多只允许输入30个字)