zoukankan      html  css  js  c++  java
  • 学习vi和vim编辑器(1):vi文本编辑器

    UNIX系统中有非常多编辑器。能够分为两种类型:行编辑器和全屏编辑器。行编辑器每次仅仅能在屏幕中显示文件的一行,如ed和ex编辑器。全屏编辑器能够在屏幕上显示文件的一部分。

    vi(读为vee-eye)编辑器是UNIX_Like操作系统的标准文本编辑器。

    vi是 visual editor的缩写,vi编辑器属于全屏编辑器。能够在阅读文件时当场就改动。而且立马看到改动后的结果。

    对于新手而言,vi编辑器难度还是很大的,可是一旦熟悉了vi编辑器,可能就再也不想又一次使用其它“简单”的编辑器了。学习vi编辑器时,要学着把编辑工作交给计算机。由于这本来就是计算机的工作。

    vi编辑器有两种模式:命令模式和插入模式。在命令模式中,所输入的一切都会被vi编辑器解释为输入的命令。

    而在插入模式中。所输入的一切都会被当做输入的文本插入到正在编辑的文件。在vi编辑器中。命令有例如以下特点:

     * 命令是大写和小写敏感的,也就是区分大小;

     * 输入命令时。命令不会显示在屏幕上;

     * 输入完命令后不须要增加enter键。

    同一时候有一组命令会显示在屏幕的底端,在这些命令前有特殊的符号。比如冒号(:)用于開始全部的ex命令。vi编辑器使用的底层编辑器就是ex行编辑器。vi仅仅是其可视化的模式。因此能够在vi编辑器中使用ex编辑器的命令。

    既然是文本编辑器,那么首先须要学习的就是怎样打开与关闭文件。能够使用vi编辑器来编辑不论什么文本。须要说明的是,vi将须要编辑的文件内容拷贝到内存中的缓冲区中,因此我们改动的仅仅是内存中文件的副本,仅仅有将缓冲区里的文件内容进行存储,才干将对文件的编辑结果更新到磁盘中的文件里。

    存储缓冲区的文件内容就是我们通常所说的“写入文件”或者说“保存文件”。

    打开文件: vi [filename]

     假设没有指定filename。那么vi将打开一个未命名的缓冲区。当我们将缓冲区里的内容写入到文件时,此时须要指定filename。

    假设filename当前已经存在,则是编辑一个已存在的文件,假设filename不存在,则相当于创建一个新的文件(须要将创建的缓冲区保存才会真的产生一个名为filename的文件)。当打开一个新的文件时。vi编辑器的底部状态栏会有对应消息。如图所看到的:


    打开文件时遇到的问题:

    * 你觉得应该是编辑一个现有文件,可是vi编辑器却显示 "[New File]"。这个问题能够肯定的说是你输入的文件名称出错了。

    * 出现例如以下图所看到的的[readonly],"Permission denied"等消息。这是由于你对该文件没有写权限或者使用了vi编辑器的查看模式(vi -R)

    * 输入 :q 命令离开时。却出现例如以下警告:

    这是由于你改动了文件(非常可能你自己都不知道改动了哪里)。由于此时文件已经发生了变动,vi编辑器一定会让你选择是否保存编辑结果才干离开。因此此时能够使用 ZZ命令保存改动结果然后退出,或者使用 :q! 不保存编辑结果然后离开。

    保存与离开文件:

    ZZ命令: 保存编辑结果,离开vi编辑器。还能够使用ex命令来保存编辑结果, :w 命令仅仅保存(写入)编辑结果,不离开编辑器。 :wq 命令保存编辑结果离开vi编辑器(:wq 与 ZZ 命令同样)

    结束而不保存编辑结果:

     :e! 命令:该命令能够消除全部的编辑结果,直接回到近期一次存储时的文件内容,也就是说能够“从头再来”。 :q! 命令也是直接忽略当前的编辑结果,回到上一次存储时的文件内容,同一时候离开vi编辑器。

    为什么这两个命令后面都有感叹号呢。由于 :e 和  :q 命令都会让当前的编辑效果消失,而vi编辑器一般不会让你放弃编辑结果。因此加上感叹号后。就能够使vi不理会这个禁令,直接将当前的编辑结果放弃。回到近期一次存储时的文件内容。

    保存文件时发生的问题:

    * 写了半天。发现没有写权限。 能够使用  :w filename 将当前结果写入到一个新的文件(因为此时会在文件夹中新创建一个文件,因此须要将该文件写入到一个对你而言具有写权限的文件夹下)

    * 尝试写文件,却发现文件系统已满。

    这个解决方法由非常多。一方面能够将该文件写入到具有剩余空间的文件系统,还有一面能够直接输入: !sh 回到shell环境中删除当前文件系统的一些大文件。在ex命令中能够用感叹号后面接UNIX命令。直接运行对应的UNIX命令。例如以下图所看到的,输入 :!pwd 显示当前文件夹:


    输入命令之后就会临时退出vi编辑器,显示出命令运行的结果:

    此时按下enter键后就能又一次回到vi编辑器了。


    本章vi编辑器命令总结:

    ZZ,:w, :q, :wq, :q!。 :e! 。 



  • 相关阅读:
    RAW和JPEG的区别_ZT
    用户自定义基元UDP_ZT
    UDP用户自定义原语
    SR锁存器
    Matlab实现Butterworth滤波器 分类: 图像处理 2014-06-02 00:05 527人阅读 评论(0) 收藏
    egrep命令的实现 分类: 编译原理 2014-06-01 23:41 329人阅读 评论(0) 收藏
    随机L系统分形树 分类: 计算机图形学 2014-06-01 23:27 376人阅读 评论(0) 收藏
    matlab实现算术编解码 分类: 图像处理 2014-06-01 23:01 357人阅读 评论(0) 收藏
    命名管道实现进程间通信--石头、剪刀、布游戏 分类: linux 2014-06-01 22:50 467人阅读 评论(0) 收藏
    互斥锁与条件变量应用 2014-06-01 22:20 328人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/6940650.html
Copyright © 2011-2022 走看看