1.模式介绍:

  在真正开始使用VIM之前,你必须先了解VIM的模式,否则在 VIM 面前你可能会手足无措。VIM是有模式

编辑器,这意味着 VIM 有多种不同的工作模式,在不同的工作模式下用户相同的操作会得到不同的结果。想象

一下你的手机,当你的手机处于待机状态时(Sleep mode),按下电源键是唤醒手机,当你的手机处于活动

状态时(Active mode),按下电源键却是进入待机状态。VIM通过模式,扩展了你的键盘,相当于使用模式

使你手机的电源键功能得到扩展一样。VIM这样做就是为了让你更高效率的编辑你的文字。

  VIM的主要模式有:

  1)Normal Mode:字面翻译常规模式,但是我更愿意称其为“编排模式”。VIM在启动后即为Normal

             Mode,在这个模式下你的操作是命令VIM帮助你完成某个动作,例如,你在键盘

               点击"h"按键,等同于你按下方向键"<—",光标向左移一个字符。在Normal Mode

               下,你的更多操作是修改文档,所以我更愿意称之为编排模式。

 

  2) Insert Mode:字面翻译插入模式,但是我更愿意称之为“编写模式”。在这个模式下,你按下"h"键,

              即输入了"h"字符,和我们用记事本编辑文字无甚区别,这叫“所键既所得” ^^。当

            处于Insert mode时,VIM显示如图:

 

  3) Visual Mode:字面翻译为可视模式,其实我更愿意称之为“区块操作模式”,因为在这个模式下,你

              总是先选中某个区域,然后再执行某种操作,这个模式可以视为局部的Normal Mode。

            当进入Visual mode时,VIM显示如图:

 

2.模式之间的切换

  Normal mode 切换到 Insert mode:

    i:进入Insert mode,并且让光标处于当前字符之前

    I:进入Insert mode,并且光标处于当前行的第一个非空字符前

    a:进入Insert mode,并且光标处于当前字符之后

    A:进入Insert mode, 并且光标处于当前行尾

    o:进入Insert mode,并在当前行后新起一行,光标位于新行

    O:进入Insert mode,并在当前行上边插入新行,光标位于新行

    s:删除当前字符,然后进入Insert mode

    S:删除当前行,然后进入Insert mode

  Insert mode 切换到Normal mode:<ESC>按键

  Normal mode 切换到Visual mode:

    v:进入Visual mode,选取以字符为单位

    V:进入Visual mode,选取以行为单位

  Visual mode 切换到Normal mode:<ESC>按键

  下图为各模式转换的关系图:

最新文章

  1. 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)
  2. bzoj 4016: [FJOI2014]最短路径树问题
  3. mac上启动Java项目失败
  4. LINUX的磁盘管理du命令详解
  5. 【转】简易smtp调用类
  6. Eclipse工作空间相关操作
  7. ES6 入门系列 - let 和 const 命令
  8. 又一枚神器:nginx
  9. 更新win7资源管理器
  10. LeetCode 345
  11. 【零基础学习iOS开发】【02-C语言】11-函数的声明和定义
  12. iOS app 发布错误 ERROR ITMS-90167: &quot;No .app bundles found in the package&quot;
  13. 简述java程序中的main方法
  14. Linux(centos5.0+)unison+inotify-tools触发式双向自动同步
  15. Activiti工作流(一)之基本操作介绍
  16. QWebSocket 客户端
  17. hdu 2046递推
  18. k8s学习笔记之三:k8s快速入门
  19. php RSA非对称加密 的实现
  20. java filter过滤器及责任链设计模式

热门文章

  1. 一:Bootstrap-css样式
  2. 用JavaScript将数字转换为大写金额(收藏)
  3. ORB-SLAM2实现(kinect V1/ROS)
  4. csharp:FlowLayoutPanel
  5. \n\r 转义字符
  6. Linux菜鸟简单命令
  7. spring 与springmvc容器的关系
  8. apm飞控飞行模式详解
  9. Ubuntu 批量修改图片大小
  10. The String class&#39;s judging function