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编辑器的底部状态栏会有对应消息。如图所看到的:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZnVjaGVuY29uZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

打开文件时遇到的问题:

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

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

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZnVjaGVuY29uZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

这是由于你改动了文件(非常可能你自己都不知道改动了哪里)。由于此时文件已经发生了变动,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 显示当前文件夹:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZnVjaGVuY29uZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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

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

本章vi编辑器命令总结:

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

学习vi和vim编辑器(1):vi文本编辑器的更多相关文章

  1. vim - Vi IMproved, 一个程序员的文本编辑器

    总览 (SYNOPSIS) vim [options] [file ..] vim [options] - vim [options] -t tag vim [options] -q [errorfi ...

  2. [译] 通过 contentEditable 属性创建一个所见即所得的编辑器(富文本编辑器)

    译者注 这只是一篇入门教程,介绍了一些基础知识,仅供参考,切不可因此觉得富文本编辑器很简单. 创建富文本编辑器是一个非常复杂的工程,需要考虑到方方面面,也有很多坑(请参考原文第一条评论). 为免误导大 ...

  3. Linux学习总结(19)——Linux中文本编辑器vim特殊使用方法

    1. vim比对功能 在linux的环境下 用于观察两个文件的一致性的时候我们一般用diff这个命令来比对,但是这个命令不能你特别详细的比对出 具体的位置或者行对比.这里就用到了vim的对比功能 vi ...

  4. 工具分享2:Python 3.6.4、文本编辑器EditPlus、文本编辑器Geany

    工具官网下载地址: https://www.python.org/downloads/ python 3.6.0下载链接: 链接:https://pan.baidu.com/s/1snuSxsx 密码 ...

  5. Linux之vi和vim编辑器

    目录 1. vi和vim简介 2. vi 和 vim 的三种常见模式 2.1 正常模式 2.2 插入模式 2.3 命令行模式 3. 三种模式间的切换 4. 常用快捷键案例 5. 常用命令 1. vi和 ...

  6. linux中vi和vim操作

    一.简单介绍 vi 和 vim 类似于windows的文本编辑器 所有的Linux系统都会内置vi文本编辑器 vim可以看做是vi增强版,具有程序编辑能力,支持语法高亮,代码补全,编译及错误跳转等功能 ...

  7. 文本编辑器vim/vi——命令模式

    一个完整的指令的标准格式: Linux通用的格式——#指令主体(空格) [选项](空格) [操作对象] 一个指令可以包含多个选项,操作对象也可以是多个. vim指令: 指令:vim   (vim是一款 ...

  8. 轻松学习之Linux教程四 神器vi程序编辑器攻略

    本系列文章由@超人爱因斯坦出品,转载请注明出处.           文章链接:          http://hpw123.net/a/Linux/Linuxjichu/2014/1026/93. ...

  9. Linux 笔记 - 第七章 Vi 和 Vim 编辑器

    博客地址:http://www.moonxy.com 一.前言 Vi 与 Vim 都是多模式编辑器,是 Linux 中必不可少的工具.不同的是 Vim 是 Vi 的升级版本,它不仅兼容 Vi 的所有命 ...

  10. 正则表达式、编辑器(vi、sed、awk)

    1. vi 2. 正则表达式 3. sed 1)打印命令:p 2)删除命令:d 3)替换命令:s 4. awk 1)awk 基本用途 2)匹配打印 3)判断打印 4)数组 1. vi vi 是 Lin ...

随机推荐

  1. Oracle_exp/expdp备份

    目录索引 1.exp和expdp的区别 2.expdp导出数据库流程 一.↓↓exp和expdp的区别↓↓ 1.exp和expdp最明显的区别就是导出速度的不同.expdp导出是并行导出(如果把exp ...

  2. C - Anton and Danik

    Problem description Anton likes to play chess, and so does his friend Danik. Once they have played n ...

  3. 浅谈Websocket、Ajax轮询和长轮询(long polling)

    浅谈Websocket.Ajax轮询和长轮询(long p0ll) 最近看到了一些介绍Websocket的文章,觉得挺有用,所以在这里将自己的对其三者的理解记录一下. 1.什么是Websocket W ...

  4. 微信公众号API使用总结

    官网:    https://mp.weixin.qq.com/ API:          http://mp.weixin.qq.com/wiki/home/index.html 接口调试工具:h ...

  5. vue中怎样实现 路由拦截器

    vue中怎样实现 路由拦截器(当用户没有登录的时候,跳转到登录页面,已经登录的时候,不能跳转到登录页,除非后台token失效) 在 我们需要实现这样 一个功能,登录拦截 其实就是 路由拦截,首先在定义 ...

  6. Hadoop分布式文件系统架构部署

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://wgkgood.blog.51cto.com/1192594/1332340 前言 ...

  7. Java 将File转换为MultipartFile类型

    首先转换时需要用到commons-fileupload-1.3.2.jar包,若项目中没有就先加入jar包,实现代码如下: 1.根据File创建FileItem import java.io.File ...

  8. eas之kingdeeUtils

        import java.sql.ResultSetMetaData;     import java.sql.SQLException;     import java.util.ArrayL ...

  9. 洛谷P1616 疯狂的采药【完全背包】

    题目描述 LiYuxiang是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞里对他说 ...

  10. [luogu4478 BJWC2018] 上学路线 (容斥原理+拓展lucas)

    传送门 Description 小B 所在的城市的道路构成了一个方形网格,它的西南角为(0,0),东北角为(N,M). 小B 家住在西南角,学校在东北角.现在有T 个路口进行施工,小B 不能通过这些路 ...