第九章、vim程序编辑器

news/2024/7/4 1:46:41

9.1 vi与vim

9.1.1 为何要学vim

所有的 Unix Like 系统都会内置 vi 文书编辑器,其他的文书编辑器则不一定会存在;

很多个别软件的编辑接口都会主动调用 vi (例如未来会谈到的 crontab, visudo, edquota等指令);

vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计;

因为程序简单,编辑速度相当快速。

什么是vim?

你可以将 vim 视作 vi 的进阶版本,vim 可以用颜色或底线等方式来显示一些特殊的信息。 举例来说,当你使用 vim 去编辑一个 C 程序语言的文件,或者是我们后续会谈到的 shell script 脚本程序时,vim 会依据文件的扩展名或者是文件内的开头信息,判断该文件的内容而自动的调用该程序的语法判断式,再以颜色来显示程序码与一般信息。也就是说, 这个 vim 是个“程序编辑器”。

9.2 vi 的使用

基本上 vi 共分为三种模式,分别是“一般指令模式”、“编辑模式”与“命令行命令模式”。 这三种模式的作用分别是:

一般指令模式 (command mode)

以 vi 打开一个文件就直接进入一般指令模式了(这是默认的模式,也简称为一般模式)。在这个模式中, 你可以使用“上下左右”按键来移动光标,你可以使用“删除字符”或“删除整列”来处理文件内容, 也可以使用“复制、贴上”来处理你的文件数据。

编辑模式 (insert mode)

在一般指令模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到你按下“i, I, o, O, a, A, r, R”等任何一个字母之后才会进入编辑模式。注意了!通常在Linux 中,按下这些按键时,在画面的左下方会出现“ INSERT 或 REPLACE ”的字样,此时才可以进行编辑。而如果要回到一般指令模式时, 则必须要按下“Esc”这个按键即可退出编辑模式。

命令行命令模式 (command-line mode)

在一般模式当中,输入“ : / ? ”三个中的任何一个按钮,就可以将光标移动到最下面那一列。在这个模式当中, 可以提供你“搜寻数据”的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作则是在此模式中达成的。

简单的说,我们可以将这三个模式想成下面的图示来表示:

                  

                                              图9.2.1、vi三种模式的相互关系

注意到上面的图示,你会发现一般指令模式可与编辑模式及命令行界面切换, 但编辑模式与命令行界面之间不可互相切换。

9.2.1 简易执行范例

如果你想要使用 vi 来创建一个名为 welcome.txt 的文件时,你可以这样做:

1. 使用“ vi filename ”进入一般指令模式

直接输入“ vi 文件名”就能够进入 vi 的一般指令模式了。不过请注意,由于一般帐号默认已经使用 vim 来取代,因此如上表所示, 如果使用一般帐号来测试,得要使用绝对路径的方式来执行 /bin/vi 才好!另外,请注意,记得 vi 后面一定要加文件名,不管该文件名存在与否。

2. 按下 i 进入编辑模式,开始编辑文字

在一般指令模式之中,只要按下 i, o, a 等字符就可以进入编辑模式了!在编辑模式当中,你可以发现在左下角状态列中会出现 –INSERT- 的字样,那就是可以输入任意字符的提示。这个时候,键盘上除了 [Esc] 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。

3. 按下 [ESC] 按钮回到一般指令模式

4. 进入命令行界面,文件储存并离开 vi 环境


http://www.niftyadmin.cn/n/4121161.html

相关文章

android ubuntu9.10 源码的编译 Eclipse工程 Contacts编译 应用加载

第一部分:编译环境的安装和编译 1. 安装ubuntu9.10系统 2. 把源码传到ubuntu,并解压 3. 安装编译环境 A. sudo apt-get install bison B. sudo apt-get install vim c. 解决:安装JDK 5.0 1):根据官方文档里…

MaxDos v5.8s 网刻图文教程

MaxDos v5.8s 网刻图文教程(傻瓜型) 本教程是基于MAXDOS环境所介绍网刻的,全中文傻瓜式。 客户端软件maxdos5.8,服务器ghostsvr8.3 一、 服务器端设置 1、 将本地连接IP地址设置为10.1.1.1,子网掩码设置为:255.0.0.…

Android源码中添加 修改应用

第一部分:添加一个新的应用 1. 在和系统相同版本的SDK目录下开发自己的android应用 2. 把开发的android工程放到源码的packages/apps/目录下 3. 在工程目录下添加Android.mk文件,修改LOCAL_PACKAGE_NAME :test001 把工程名指定为自己的工程名&#xff0c…

斯坦福大学iOS应用开发教程学习笔记(第二课) 计算器实现(mvc实战)

整个项目下载:https://github.com/junxianhu/Calculator,觉得有帮助的可以点击Star啊,谢谢啦。 界面不太好看 ==! 主要的文件目录如下: 贴几个关键的文件,其实注视都很详细&#…

NDK mk 文件分析

通过分析一个例子来了解NDK makefile文件的生成。例子"hello JNI" ,由NDK提供的例子 A. 目录结构 jni目录:包含本地源文件,eg:jni/hello-jni.c,该源文件实现了一个简单的共享库,实现了一个简单的…

哈佛告诉你

陈祖芬 哈佛某教授对学生说,你学我这门课,你就一天只能睡两小时。学生想,那么,我学四门课,我就没有睡眠时间了,我就得倒贴睡眠时间了。 于是—— 哈佛产的诺贝尔奖得主有33位。 哈佛产的美国总统有7位。…

中国武侠片经典剧情(^.^)

为什么80%的码农都做不了架构师?>>> 从小到大,可以说,我是一直看着中国武侠片长大的,中国武侠,确实有着自己的风格和传统,在世界影坛也有一定的地位,甚至有的国外朋友曾经问过我说&…

Activity LifeCycle 生命周期

1. Android中Activity的调用机制 据我的了解,Android中Activity跳转的实现,主要是通过栈的先进后出的原理设计的。当新建一个Activit的时候,把它压入栈,然后按返回键的时候,就出栈。android设置了容纳Activity栈的大小…