参考自:http://www.cnblogs.com/itech/archive/2009/04/17/1438439.html

作者:iTech
出处:http://itech.cnblogs.com/

重新编辑,只保留了常用的命令,并增加少许理解和心得。

1、vi的基本概念

基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
1) 命令行模式(command mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

我的理解:写字板里的(编辑)菜单
2) 插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。

我的理解:写字板里按鼠标在页面里编辑,整个要整键盘才好使。
3) 底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。

我的理解:写字板里的(文件)和(设置)菜单

2、vi的操作

1)进入vi

$ vi myfile  意思是:输入vi+空格+你要打开的文件名称

2)退出

【ESC+ :q!】 意思是:先按一下ESC键进入底行模式,输入冒号,输入q!,不保存强制退出vi,相当于写字板的(退出)。

【ESC+  : w filename】 意思是:先按一下ESC键进入底行模式,输入冒号,输入W+要保存的文件名称,相当于写字板的(另存为)。

【ESC  : wq】 意思是:先按一下ESC键进入底行模式,输入冒号,输入wq,直接保存并退出vi,相当于写字板的(保存)。

3)编辑文件

按一下【i】,进入编辑模式,可以在光标位置打出来字符了,相当于点了一下鼠标,即指即点。

按一下【a】,进入编辑模式,从光标的下一个位置开始输入。

按一下【o】,进入编辑模式,从新的一行的一个位置开始输入。

4)移动光标

一般用箭头就行了,非要进入装逼模式就在命令模式下用【h】【j】【k】【l】控制左,下,上,右。

按【ctrl+b】:屏幕往“后”移动一页。
按【ctrl+f】:屏幕往“前”移动一页。
按【ctrl+u】:屏幕往“后”移动半页。
按【ctrl+d】:屏幕往“前”移动半页。

按【G】:移动到文章的开头,注意是大写G,搞了半天。

按【#l】:光标移到该行的第#个字符的位置,如:5l,56l。

5)输入字符

敲键盘,没别的。

6)删除字符

按【x】,按一次删除光标后面的一个字符

按【数字+x】,删除光标后面输入数字个数个字符

按【dd】,删除光标所在的行

按【数字+dd】,删除光标后面输入数字个数行

7)复制字符

按【数字+yw】复制光标后输入数字个数的字(这个字是指单词,不是字母)

按【yy】复制光标所在行

按【数字+yy】复制光标往下输入数字个数的行

8)粘贴

按【p】从光标位置粘贴

9)撤销

按【u】撤销上一次的命令

10)跳到指定行

【数字+G】跳到输入数字的行首

11)保存

【ESC+:w】 意思是按ESC键进入命令模式,按冒号,按w保存文件

12)列出行号

【ESC+:set nu】意思是按ESC进入命令模式,按冒号,输入set,空格,nu,自动列出行号

【ESC+:set nonu】去掉行号

13)查找

【ESC+:/要查找的字】意思是按ESC进入命令模式,按冒号,输入/,输入要查找的字,回车,找到第一个字,一直按n向后查询

【ESC+:?要查找的字】意思是按ESC进入命令模式,按冒号,输入?,输入要查找的字,回车,找到第一个字,一直按n向前查询

小结:

1、除了编辑文档,所有的操作都是要先按ESC键,进入编辑模式后输入命令才能操作的。

2、区分大小写

3、其实整体思路和windows的写字板,记事本是一样的,只是Linux黑白屏没有办法用鼠标,智能靠命令,而命令和文档的输入都得用键盘,所以就得区分输入模式和命令模式。

4、功能和记事本都一样,不过是用命令,用的多了就记住。

吐槽:

Linux根本就不是设计给一般用户用的,完全是给专业人员用的。和windows的定位根本就不同,既然这样,那些模仿windows又有什么意义呢?做Linux该做的事情吧。

高手的思维导图

Linux的VI/VIM的更多相关文章

  1. 【转】Linux上vi(vim)编辑器使用教程

    Linux上vi(vim)编辑器使用教程 ------------------------------------------------------------ ikong ------------ ...

  2. Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令

    Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...

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

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

  4. Linux上vi(vim)编辑器使用教程

    vi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率.vi是“visual interface”的缩 ...

  5. [Linux/Ubuntu] vi/vim 使用方法讲解(转载)

    转自:http://www.cnblogs.com/emanlee/archive/2011/11/10/2243930.html vi/vim 基本使用方法 vi编辑器是所有Unix及Linux系统 ...

  6. Linux命令vi/vim 使用方法讲解

    vi/vim 基本使用方法 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的 ...

  7. [Linux/Ubuntu] vi/vim 使用方法讲解

    vi/vim 基本使用方法 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的 ...

  8. Linux command ------ vi / vim

    EDIT mode to GENERAL mode: press ESC General mode: operate file :q!    :force to close the file but ...

  9. 新手指南:Linux上vi(vim)编辑器使用教程

    vi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率.vi是“visual interface”的缩 ...

  10. Linux下Vi/Vim的使用方法

    本文介绍了vi (vim)的基本使用方法,但对于普通用户来说基本上够了!i/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特 ...

随机推荐

  1. 【C#学习笔记】二、面向对象编程

    2.1 抽象类与接口 1)概念 抽象类是特殊的类,只是不能被实例化:除此以外,具有类的其他特性:重要的是抽象类可以包括抽象方法,这是普通类所不能的.抽象方法只能声明于抽象类中,且不包含任何实现,派生类 ...

  2. java数据库连接类,已经把数据库操作的方法都封装好了

    在这里分享一个已经封装好了的java数据库连接类,只要创建对象就可以实现数据库的增删改查操作,用过都说好.其实这个不是我自己写的,是一个理解和学习能力超高的朋友写的,他也很乐于分享交流,本人也深受他的 ...

  3. [转]C++宏定义详解

    一.#define的基本用法     #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质 ...

  4. javascript sort()与reverse()

    javascript 中提供了两个对数据进行排序的方法,即sort()和reverse() 在理解的时候犯了一个非常低级的错误,现记录如下: reverse()不包括排序的功能,只是把原来的数组反转. ...

  5. 转:十条不错的编程观点。(出处:酷 壳 – CoolShell.cn)

    在Stack Overflow上有这样的一个贴子<What’s your most controversial programming opinion?>,翻译成中文就是“你认为最有争议的 ...

  6. php设计模式2策略模式

    <?php /** ****************************************************** * 策略模式:策略模式针对一组算法,将每一个算法封装到具有共同接 ...

  7. 文成小盆友python-num15 - JavaScript基础

    一.JavaScript简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的 ...

  8. Java was started but returned exit code=13

    安装Eclipse(32位)后打开报错:Java was started but returned exit code=13 解决方法: 1,首先我查看了我当前安装的JDK版本,发现是64位的: 2, ...

  9. encodeURI和encodeURIComponent的比较

    encodeURI和encodeURIComponet函数都是javascript中用来对URI进行编码,将相关参数转换成UTF-8编码格式的数据.URI在进行定位跳转时,参数里面的中文.日文等非AS ...

  10. LINQ 内链接 左链接 右链接

    原文地址:http://blog.sina.com.cn/s/blog_46e9573c01014fx2.html 1.左连接: var LeftJoin = from emp in ListOfEm ...