vim不像很多编辑器那样一启动便可以直接编辑文本,需要在普通模式按下i, a等键才会进入插入模式进行文本编辑。

如何进入插入模式

以下的命令都会让vim从普通模式切换到插入模式,但命令执行后的字符插入位置有所不同。

命令 执行后的字符插入位置
i  当前字符之前
I  当前行首第一个非空白字符之前 
a  当前字符之后
A  当前行尾
s  删除当前字符,光标停留在下一个字符处
S  删除当前行,光标停留在行首
o  在当前行的下方插入一个新行,光标停在新行行首
O  在当前行的上方插入一个新行,光标停在新行行首

常用编辑操作

上一篇文章《vim】正常模式下的一般操作》已经提到过,vim中的很多操作都可以指定数量、范围和方向等,编辑操作也不例外。为了简洁,下表不会和上一篇一样根据动作范围不同分类(如单词操作只给出w,不给出W,e,E,b,B等),而是只给出几个经典操作,排列组合的举例在下一小节介绍一些,具体的多种变化还是需要自己在实际使用中尝试和练习。

类型 命令 说明
复制 yw  复制光标后的一个单词
yy  复制当前行
<n>yy  复制以下n行
yG  复制当前行到文件末尾的内容
y%、ya{  光标放在{上,复制{}及其内部中的内容
剪切/删除 x  剪切当前字符,相当于dl
X  剪切前一个字符,相当于dh
dw、cw  剪切光标后的一个单词,d和c的区别是c会进入插入模式,下同
D、C  剪切到行尾,相当于d$,c$
dd、cc  剪切当前行
<n>dd、<n>cc  剪切以下n行
dG  剪切当前行到文件末尾的内容
J  在上一行中任意位置按J,将会把下一行合并到这行末尾(Join)
粘贴 p  将剪切板中的内容粘贴到光标后
P  将剪切板中的内容粘贴到光标前
替换 r  按下后,再输入字符将替换当前字符
R  按下后,进入替换模式,将依次替换之后字符
撤销 u  
重做 <Ctrl>+r  
缩进 >>   当前行向右缩进
<<  当前行向左缩进
<n>>>  以下n行向右缩进
<n><<  以下n行向左缩进
==  自动调整当前行的缩进,使之与上下文
<n>==  自动调整以下n行的缩进
gg=G  自动调整文件所有行的缩进
转换大小写  ~  转换当前字符的大小写
guw  将光标后的单词全部变为小写
gUw  将光标后的单词全部变为大写
guu  将当前行全部变为小写
gUU  将当前行全部变为大写
块注释* 注释

 假如要将第8行到第16行的内容用//注释掉,步骤是
 1. 光标定位到第8行行首
 2. 按<Ctrl>+v进入可视模式(Visual Block)
 3. 按j或向下箭头,定位到第16行行首
 4. 按<Shift>+i,输入//
 5. 按一次或两次<Esc>

取消注释

 假如要将第8行到第16行用//注释的内容取消注释,步骤是
 1. 光标定位到第8行行首
 2. 按<Ctrl>+v进入可视模式(Visual Block)
 3. 按j或向下箭头,定位到第16行行首,按l或向右箭头,选中//
 4. 按d或x,删除//

*其中块注释用到了可视模式的操作,这本应该在后面某篇中介绍的,但这个操作很重要,所以在这里介绍一下。取消注释第3步中定位到第16行行首和向右移动选中//两个操作,可以互换。

组合命令示例

y3w  复制光标后3个单词
d2$  剪切光标到下面第2行的末尾
>}  将当前行到下一个空行之间的内容向右缩进
=%  光标放在{或}上,执行后自动缩进{}中间的内容
3gUU  将以下3行全部变为大写
dt<c>  在当前行内,删除从光标处到后面第1个字符<c>的内容

不常用的编辑操作

.  (小数点) 可以重复上一次的命令
<n><Command>  重复某个命令n次
:r!date  插入日期

【vim】插入模式与常用编辑操作的更多相关文章

  1. 【Linux学习】Vi / Vim编辑器—编辑器工作模式、vi编辑操作

    Vi / Vim编辑器-编辑器工作模式.vi编辑操作 推荐一个很好的学习指南:http://www.oschina.net/translate/learn-vim-progressively 一.编辑 ...

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

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

  3. vim编辑操作

    vim    插入模式        a    光标后        A    行尾        o    光标所在行下一行        O    光标所在行上一行        i    光标前 ...

  4. Vim和Vi的常用命令

    Vim 文本编辑器 1.Vim 和 Vi: 两者都是多模式编辑器: Vim 是 Vi 升级版,再兼容 Vi 所有指令的同时增加了一些新功能支持: 特点: 语法加亮:使用不同的颜色加亮代码: 多级撤销: ...

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

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

  6. vim的几个常用操作

    现在很少会有人用vim来写代码,所以vim更常用在server上面编辑配置文件或者少量代码编辑: vim操作命令非常之多,如果仅用作一个配置文件的编辑器,掌握几个常用的操作就够了: 常用的操作其实就是 ...

  7. VIM 三种模式和常用命令

    引言 大数据开发工作中,周围的同事不是用 VIM 就是 Emacs,你要是用 UltraEdit 或 notepad++ 都不好意思跟人家打招呼...什么插件呀.语法高亮呀.拼写检查呀,能给它开的都给 ...

  8. linux --> VIM的列编辑操作

    VIM的列编辑操作   一.删除列 1.光标定位到要操作的地方. 2.CTRL+v 进入“可视 块”模式,选取这一列操作多少行. 3.d 删除.   二.插入列 插入操作的话知识稍有区别.例如在每一行 ...

  9. 5.5 进入编辑模式 5.6 vim命令模式 5.7 vim实践

    5.5 进入编辑模式 5.6 vim命令模式 5.7 vim实践 进入编辑模式 小写i在当前字符前插入 大写I 在光标所在行的行首插入 大写O 在光标上面一行插入编辑 小写o在光标下面一行插入编辑 小 ...

随机推荐

  1. 在VMware Workstation中安装Ubuntu Server 16.04.5图解教程

    最近要在Ubuntu中部署openstack,为了节省空间和内存,最终选择了Ubuntu服务器.看了很多前辈和大佬的安装教程,在这里记录一下我自己的Ubuntu Server 16.04.5的安装过程 ...

  2. react-native 生命周期

    一.前言 问: 什么是组件的生命周期? 组件的生命周期中都包含哪些方法,各有什么作用? 生命周期的方法都在什么时候调用? 生命周期: 顾名思义,一个主体从出生到死亡的整个过程 学习组件(React的基 ...

  3. 拒绝用户登录:/bin/false和/usr/sbin/nologin

    要拒绝系统用户登录,可以将其shell设置为/usr/sbin/nologin或者/bin/false 1 # usermod -s | --shell /usr/sbin/nologin usern ...

  4. Greeplum 系列(七) 权限管理

    Greeplum 系列(七) 权限管理 一.角色管理 Role 分为用户(User)和组(Group),用户有 login 权限,组用来管理用户,一般不会有 login 权限.初始化 gp 时创建了一 ...

  5. 在Eclipse中使用Struts和Hibernate框架搭建Maven Web项目

    前言 学习使用Java还是2012年的事情,刚开始学习的Java的时候,使用的是MyEclipse工具和SSH框架.初学者适合使用MyEclipse,因为他将struts.Spring和Hiberna ...

  6. Gym 101201J Shopping (线段树+取模)

    题意:给定 n 个物品,然后有 m 个人买东西,他们有 x 元钱,然后从 l - r 这个区间内买东西,对于每个物品都尽可能多的买,问你最少剩下多少钱. 析:对于物品,尽可能多的买的意思就是对这个物品 ...

  7. POJ2349 Arctic Network 2017-04-13 20:44 40人阅读 评论(0) 收藏

    Arctic Network Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 19113   Accepted: 6023 D ...

  8. Delphi获取文件名、文件名不带扩展名、文件名的方法;delphi 获取文件所在路径

    取文件名 ExtractFileName(FileName); 取文件扩展名: ExtractFileExt(filename); 取文件名,不带扩展名: 方法一:   Function Extrac ...

  9. JAVA下查看进程中线程占用CPU较高的代码

    执行以下代码获得进程的线程.并找到CPU占用较高的线程ID ps -mp 16935 -o THREAD,tid,time   执行以下代码,通过线程ID获得16进制的线程标识 printf &quo ...

  10. 在Team Foundation Server (TFS)的代码库或配置库中查找文件或代码

    [update 2017.2.11] 最新版本的TFS 2017已经增加了代码搜索功能,可以参考这个链接 https://blogs.msdn.microsoft.com/visualstudioal ...