Vim模式介绍

 几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数的编辑器使用了与Vim接入不同的方式:命令目录(鼠标或者键盘驱动),组合键(CTRL和ALT组成)或鼠标输入。Vim和vi一样,仅通过键盘来在这些模式之中切换,

 Vim具有6种基本模式和5种派生模式。

 普通模式(Normal mode):在普通模式中,用的编辑器命令,这是Vim启动后默认的模式。普通命令模式往往需要一个操作符结尾。

 插入模式(Insert mode):在插入模式中,大多数案件都会向文本缓冲中插入文本。大多数新用户希望文本编辑器过程中一直保持这个模式。在插入模式中,可以按Esc键回到普通模式。

 可视模式(Visual mode):这个模式和普通模式较相似。但移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或一块文本。当执行一个非移动命令时,命令会被执行到这块高亮的区域上。Vim的“文本对象”也能和移动命令一样用在这个模式中。

 选择模式(Select mode):这个模式和无模式编辑器的行为比较相似。这个模式中,可以用鼠标或者光标键高亮选择文本,不过输入任何字符的话,Vim会用这个字符替换选择的高亮文本块,并且自动进入插入模式。

 命令行模式(Command line mode):在命令行模式中可以输入会被解析成并执行的文本。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。

 Ex模式(Ex mode):在使用:visual命令离开Ex模式前,可以一次执行多条命令。 

 常用的是普通模式、插入模式和命令行模式。  

  三种常用模式的切换

 vim启动进入普通模式,处于插入模式或命令行模式时只需要按Esc或Ctrl+[即可进入普通模式。在普通模式中按i(插入)或a(附加)键都可以进入插入模式,在普通模式中按:进入命令行模式。命令行模式中输入wq回车后保存并退出vim。

 进入Vim

 使用Vim命令进入vim界面。

 $ vim practise.txt  //直接使用vim也可以打开vim编辑器,但不是打开任何文件。

 在进入vim后,按下i键进入插入模式。按Esc进入普通模式,在该模式下使用方向键或h(左)、j(下)、k(上)、l(右)键移动光标。w移动到下一个单词,b移动到上一个单词。

 按以下键可进入插入模式,并可以从相应的位置开始输入。

 i:在当前光标处进行编辑    I:在行首插入   A:在行末插入   a:在光标后插入编辑     o:在当前行后插入一个新行

 O:在当前行前插入一个新行   cw:替换从光标所在位置后到一个单词结尾的字符

 保存文档:在普通模式输入:进入命令模式,输入w回车,保存文档。输入:w 文件名可以将文档另存为其他文件名或存到其他路径下。

 退出Vim

 普通模式输入:进入命令行模式后,输入wq回车,保存并退出编辑。

 :q!   强制退出,不保存

 :q    退出

 :wq!  强制保存并退出

 :w <文件路径>  另存为

 :saves   另存为

 :x      保存并退出

 :wq    保存并退出

 在普通模式下退出vim:Shift+zz  

  删除文本

 普通模式下删除vim文本信息

 x:删除游标所在的字符     X:删除游标所在前一个字符    Delete:同x      dd:删除正行     dw:删除一个单词

 d$或D:删除至行尾   d^:删除至行首    dG:删除到文档结尾处   d1G:删至文档首部

 

vim1的更多相关文章

  1. 入门VMware Workstation下的Debian学习之Vim简单使用(三)

    什么是Vim? Vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计. Vim是从vi发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广 ...

  2. vim 源码分析

    vim 源码分析 http://bbs.csdn.net/topics/230031469 Ver7.1  晕.看不明白很正常.  7.1已经很大了.  支持了太多东西. 代码行数那么多(源码压缩了都 ...

  3. Armbian编译以及定制

    Armbian项目地址 Github: https://github.com/armbian/build Armbian for TV Box 项目地址 Github: https://github. ...

  4. 第二周、ubuntu的简单介绍与使用

    一.复习第一周的大致内容:1.UNIX与Linux.ubuntu系统UNIX是1971年贝尔实验室的肯·汤普逊.丹尼斯·里奇,合作研发一款通过的操作系统,多用户.多任务.安全.稳定,收费.Linux是 ...

随机推荐

  1. JAVA类与对象作业——动手动脑以及课后实验性问题

    一: 1.源代码 //MAO2015.10.6 //foo class Foo { int value; public Foo(int initValue) { value = initValue; ...

  2. SAP资产明细报表

    前两年别人写的,无自定义表字段...直接使用: *&---------------------------------------------------------------------* ...

  3. 委托传参,lambda

    今天一朋友问到一问题,怎么在timer的委托里面传参数,我初一想Invoke 可以传参数吧,我就说了. 后来他说这个委托是微软定义,不能变参数,于是我就自己写了一段代码试 试. 我最初写的代码如下 p ...

  4. mvc+ef中比较数据

    例如:根据Para表中的type和paraid 字段进行比较 public class TypeComparer : IEqualityComparer<Para> { bool IEqu ...

  5. freemarker实例2

    下面演示一个简单的使用项目过程:1. 使用myeclipse创建一个web项目testFM2. 把下载到的jar包(freemarker-2.3.9.jar)放到/WebRoot/WEB-INF/li ...

  6. 使用ContentProvider管理联系人------添加联系人

    add.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 获取程序界面中的三个 ...

  7. 四种java代码静态检查工具

    [转载]常用 Java 静态代码分析工具的分析与比较 转载自 开源中国社区 http://www.oschina.net/question/129540_23043       1月16日厦门 OSC ...

  8. [Js]滑动门效果

    描述:鼠标移动到一副图片上,会显示该副图片的全貌,而其他图片会显示概貌 一.没有动画效果的运动 思路: 1.定好每张图片的初始位置(第一张完全显示,234只露出一部分) 2.计算每道门的移动距离(即未 ...

  9. RelativeLayout练习

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=&q ...

  10. HDU 3076 ssworld VS DDD 概率dp,无穷级数,oj错误题目 难度:2

    http://acm.hdu.edu.cn/showproblem.php?pid=3076 不可思议的题目,总之血量越少胜率越高,所以读取时把两人的血量交换一下 明显每一轮的胜率和负率都是固定的,所 ...