不知道有多少VIM新手和我当年(去年)一样,信誓旦旦的以为只有i可以插入

唉,现在想想都觉得可笑,都是Windows下的编辑器用多了的结果

鼠标一点,妈妈再也不用担心我的文本插入了……悲剧!

好了,让我们抛弃过去吧,从现在起奋斗,也许不算太晚

这是俺写的《轻快的VIM系列》第二节,每一节都会不断更新,加入更多技巧在里面

VIM新手们加油,咱一起总结,一起努力练习……

基础

字符位置插入

i            在光标之前插入
a 在光标之后追加

你看,其实刚开始用这两个就足够了,这就是最基础的

为什么这么说呢?因为你可以依靠上一节中的移动命令来达到任意位置,然后再大力插入

不要忘了,VIM中最重要的技巧之一就是命令间的配合使用

进阶

行位置插入

A            在一行的结尾处追加
I 在一行的开头处插入
o 在光标所在位置的下一行打开新行插入
O 在光标所在位置的上一行打开新行插入

当然,如果你认为先移动光标然后插入或追加慢了,那么就应该用上面这种方法

它们是以行做单位

在这里我还是需要提醒一下,命令前加数字代表执行次数

tips1:10I*<Esc>先输入10,然后输入i,接着输入*号,最后按<Esc>

     这样就可以在一行开头输入十个*

    

tips2:同样,5o###<Esc>先输入5,然后输入o,接着输入###,最后按<Esc>

     这样就可以在下列5行中每一行开头插入###

    

看,这样一来,再需要输入重复文本的时候就变得方便了对不对,你可以自己试着扩展思维……

但我依然会不厌其烦的提醒你,命令的组合也是最重要的技巧之一

合并行

有时候你也许会想合并两行

    

J            合并两行

    

你只需要把光标移动到首行,然后按3次J即可, 或者3J.

VIM 插入的更多相关文章

  1. linux vim 插入行号

    1 在文本中插入行号 最近有朋友提到某编辑器有一个可以插入行号的插件,问Vim有没有办法可以在文章中插入行号.%$^&*#8~#$@#!--让我们看一下有多少种方式可以在vim中插入行号或数字 ...

  2. 把vim插入状态的光标改为竖线

    和终端有关系,如果是Konsole的终端,把下面两行加到.vimrc文件里就可以 let &t_SI = "\<Esc>]50;CursorShape=1\x7" ...

  3. vim 插入时间戳的方法

    这里主要说明用内置函数 strftime 来插入,而不用 :r!date 或类似方法. 用命令 "=strftime('%c')<Ret>p ,或<C-r>=strf ...

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

    本文转载自:https://blog.csdn.net/zxy987872674/article/details/64124959 最近使用某个服务器编辑文件时,快捷键i进入插入模式后,下方不出现in ...

  5. Vim 插入递增列

    <C-a> ++1 <C-x> --1     安装Plugin 'terryma/vim-multiple-cursors'后 <C-v> 选所有数字 <C ...

  6. vim 插入行号

    :let i=1000000|g/^/s//\=i.' '/|let i=i+1

  7. vim之插入

    进入vim插入模式,我们熟知的有: 字符位置插入: i      在光标之前插入 a     在光标之后追加 行位置插入: A  在一行的结尾处追加 I   在一行的开头处插入 o  在光标所在位置的 ...

  8. vim 文字插入

    我们知道VIM中,普通的复制和粘贴都是YY和PP.那么怎么将vim以外的文件插入到vim编辑器中呢!这是个问题: 首先我们要选中想要插入的文字,如: 然后进入vim插入模式:SHIFT + Inser ...

  9. 8. vim编辑器高级应用

    1. vim主要模式介绍 命令模式.命令行模式.编辑模式 字符操作:i 当前插入, I行首插入, a当前字符之后插入,A行首插入, ESC退出当前模式 2. vim命令模式 3. vim插入模式 4. ...

随机推荐

  1. BUS Matrix

    ARM的BUS Matrix就是多主(Core,DMA等).多从(内部RAM,APB,外部总线等)的交联和仲裁.目的是为了提高不同主机访问不同外设情况下的带宽,另外一个就是简化Bus Master的协 ...

  2. yarn是什么?为什么会产生yarn,它解决了什么问题?以及yarn的执行流程

       yarn是什么?为什么会产生yarn,它解决了什么问题? 答:yarn是作业调度和集群资源管理的一个框架. 首先对之前的Hadoop 和 MRv1 简单介绍如下: Hadoop 集群可从单一节点 ...

  3. Hbase 学习(二)各种filter

    各种filter 今天的主题是Filter,hbase客户端查询的时候,自定义查询filter. 直接上例子吧,不多说别的了,第一个例子是RowFilter的. Scan scan = new Sca ...

  4. HDU 5289 Assignment(多校2015 RMQ 单调(双端)队列)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5289 Problem Description Tom owns a company and he is ...

  5. /etc/fstab文件损坏怎么办

    第一步首先关机挂载磁盘 第二步开机启动从BIOS,关键字F2 第三步光盘启动进入救援模式 第四步vi /mnt/sysimagimage/etc/fstab ,编辑完exit退出,reboot 进入光 ...

  6. 轻量级ORM框架Dapper应用五:使用Dapper实现Join操作

    在这篇文章中,讲解如何使用Dapper使用Inner join的操作 1.新创建两张表:Users表和Product表 Users表定义如下: CREATE TABLE [dbo].[Users]( ...

  7. C#程序运行流程

    我们写好的C#代码操作系统是如何能识别呢,我们都知道操作系统只能认识二进制 机器代码,下面用图来表示 因为C#是安全的托管代码 同时CLR会在内存中创建应用程序域 托管代码:被CLR管理的代码 非托管 ...

  8. 20个优秀的JavaScript 键盘事件处理库

    键盘事件是 Web 开发中最常用的事件之一,通过对键盘事件的捕获和处理可以提高网站的易用性和交互体验.下面,我们向大家介绍收集的20款优秀的 JavaScript 键盘事件处理库,帮助开发人员轻松处理 ...

  9. 关于Cocos2d-x中增加暂停按钮的步骤

    1.在GameScene.cpp的init方法中先定义一个里面放着可变换并在变换的时候会响应事件的MenuItem的Menu,这个Menu里面的可变换MenuItem又由两个小MenuItem组成,每 ...

  10. Json学习一(基础概念知识学习)

    1.Json简单介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它使得人们非常easy的进行阅读和编写. 同一时候也方便了机器进行解析和生成.它是基 ...