一、vim相对于vi所做的提升

  1.支持多级撤销(字母u, vi中只能撤销一部)

  2.支持跨平台(unix为内核系统,windows也可以)

  3.语法高亮

  4.支持图形界面

二、vi编辑器的操作模式

  <1>

    命令模式:用于等待用户命令,撤销,剪切,复制等

    输入模式:即编辑模式

    底行模式(尾行):可以输入指令,如保存文件,退出vi,搜索字符串等

    有时底行模式也归类到命令行模式中

------------------------------------------------------------------------------------------

  模式说法各异,鸟哥的Linux私房菜中的三种模式称呼有所差别

    一般模式:

      默认的模式,这个模式中可以上下左右移动光标,也可以进行复制剪切粘贴等

    编辑模式:

      一般模式下按 i,o,a,p等进入编辑模式,以编辑文件内容

    命令行模式:

      一般模式下输入 : \ ? 可进入命令行模式,进行数据查找,文件保存等

------------------------------------------------------------------------------------------

    个人更习惯鸟哥的Linux私房菜中的叫法

  <2>

    vim abc  //新建abc文件,若已存在则打开

    默认进入是一般模式,此时还不能编辑

    输入字母i,左下角变为INSERT,进入编辑模式,此时就可以输入文字了

    编辑内容    

    按下ESC,返回一般模式,输入:wq保存退出

三、vim编辑器的命令格式

  vim abc  //编辑或打开文件abc,根据系统不同,有的光标默认在第一行,有的默认在上次退出时停留的行

  vim + abc  //打开文件之后,将光标定位到最后一行

  vim +3 abs  //打开后光标停留在文件的第3行

    若行号超过文件的最大行号,仍然定位到最后一行

    //用于编译报错时的改错是十分方便的

  vim +/word abs  //直接定位到word第一次出现的那一行

    可通过按字母n多次查找

  vim aa bb cc  //一次性创建或打开多个文件

    通过输入 :n 跳转到下一个文件

    输入 :N 或 :prev 跳转到上一个文件

四、一般模式和命令行模式下的常用命令

  命令行模式

  ;w  保存

  :q  退出当前vi编辑器打开的文件

  :!  强制执行  //可配合使用

  :ls  列出当前编辑器中打开的所有文件

  :n  切换到下一个文件

  :N  切换到上一个文件

  :15  把光标快速定位到第15行

  :/xxx  从光标位置开始向下搜索查找第一次xxx出现的位置

  :?xxx  从光标位置开始向前搜索查找第一次xxx出现的位置

  

  一般模式

  h  左移光标

  j  光标下移

  k  光标上移

  l  光标右移

  ctrl+f  向下翻页

  ctrl+b  向上翻页

  ctrl+d  向下翻半页

  ctrl+u  向上翻半页

  dd  删除光标所在行

  o  光标所在行的下放插入一行并且换到编辑模式

  yy  复制光标所在行

  p  在光标所在行下放进行粘贴

  P  在光标所在行上方粘贴

vim文本编辑器的更多相关文章

  1. (6.2)vim文本编辑器

    vi / vim是Unix / Linux上最常用的文本编辑器而且功能非常强大. vim文本编辑器只有命令,没有菜单.

  2. Linux系统 vi/vim文本编辑器

    Linux系统 vi/vim文本编辑器 (一)Vim/Vi简介 (二)Vim/Vi工作模式 (三)Vim/Vi基本使用 (四)Vim/Vi应用技巧 (一)Vim/Vi简介 Vim/Vi是一个功能强大的 ...

  3. Vim 文本编辑器的基本使用

    Vim文本编辑器是Linux/Unix系统下最常用的工具之一,通过该工具可以很方便的建立.修改.编辑文档或者程序文件,其作用类似与windows系统下的记事本或者notepad++,因此熟练掌握该工具 ...

  4. 11 vim文本编辑器

    和sed相比,sed为字处理器(行编辑器),将文本逐行放入到模式空间(也就是内存)中进行处理,并显示在屏幕上.而vim.vi以及nano都是全屏文本编辑器,而vim则是vi的加强版本,相对于vi,vi ...

  5. Linux命令行下的vim文本编辑器

    Linux命令行下的vim文本编辑器 下面这个网站的地址讲解的非成分清楚!!!! http://blog.csdn.net/niushuai666/article/details/7275406 学习 ...

  6. linux100day(day3)--常用文本处理命令和vim文本编辑器

    今天,来介绍几个常用文本处理命令和vim文本编辑器 day3--常用文本处理命令和vim文本编辑器 col,用于过滤控制字符,-b过滤掉所有控制字符,这个命令并不常用,但可以使用man 命令名| co ...

  7. Vim文本编辑器详细用法

    1 Vi.Vim文本编辑器 1.Vi.Vim Vi是Visual interface的简称. Vim是Vi的增强版,即Vi Improved.在后面的实例中将介绍Vim的使用. 为什么学vi? 1)所 ...

  8. linux/linux学习笔记-vim文本编辑器(mooc)

    vim文本编辑器 vim与vi的区别:( vim=vi +IMproved) VIM是一个Unix以及类unix文本编辑器 特点:功能强大,高度可定制 vim编辑器的三种模式:一般模式.编辑模式和命令 ...

  9. Linux学习笔记(九)Vim文本编辑器的使用

    Vim文本编辑器的使用 Vim的工作模式 1.命令模式 2.输入模式 3.编辑模式 进入Vim 1.使用Vim打开文件 2.直接进入指定位置 Vim基本命令 1.插入命令 2.光标移动命令 3.使用V ...

  10. 第十八章 vi/vim文本编辑器介绍

    一.vi/vim文本编辑器介绍 1.含义: vi就是一个文本编辑器 2.为什么学习: 系统配置 编写脚本 vim就是vi的升级版 高级版 [root@jindada ~]# [root@jindada ...

随机推荐

  1. ios下移除原生样式

    之前遇到过这个问题,今天无意中在网上看见博文 记录一下. 设置这个就好: -webkit-appearance : none ;

  2. caller和callee属性

    ECMAScript5规范了函数对象的属性:caller.除了Opera的早期版本不支持,其他浏览器都支持这个ECMAScript3并没有定义的属性. [IE,Firefox,Chrome,Safar ...

  3. [bzoj2124]等差子序列(hash+树状数组)

    我又来更博啦     2124: 等差子序列 Time Limit: 3 Sec  Memory Limit: 259 MBSubmit: 941  Solved: 348[Submit][Statu ...

  4. 深入理解HTTP协议、HTTP协议原理分析

    http://blog.csdn.net/g1036583997/article/details/50457441

  5. ionic cordova

    ionic cordova 打包 文章 http://blog.csdn.net/i348018533/article/details/47258449 http://www.cnblogs.com/ ...

  6. Head First 设计模式 --6 命令模式

    命令模式:将"请求"封装成对象,以便使用不同的请求,队列或者日志来参数化其他对象.命令模式也支持可撤销的操作.用到的原则:1.封装变化2.组合优于继承3.针对接口编程,不能针对实现 ...

  7. react mixins编写

    var LogMixin = { componentWillMount: function () { console.log('Component will mount'); }, component ...

  8. UNIX-LINUX编程实践教程->第八章->实例代码注解->写一个简单的shell

    一 分析 要实现一个shell,需包含3个步骤 1)读入指令 2)指令解析 3)执行指令 1 从键盘读入指令 从键盘读入指令的几个要点: 1)调用getc函数等待并获取用户键盘输入. 2)每一行命令的 ...

  9. JS判断form内所有表单是否为空

    function checkForm(){ var input_cart=document.getElementsByTagName("INPUT"); for(var   i=0 ...

  10. DTO概念

    在开发过程中用到了DTO,简单了解了一下. DTO:数据传输对象,用来连接表现层和应用层之间的数据交互.数据传输对象是没有行为的POJO对象,它的目的只是为了对领域对象进行数据封装,实现层与层之间的数 ...