发布时间:2014-09-05 16:41:09作者:知识屋
Linux 系统下的文本编辑器有很多种,包括图形模式下的gedit、kwrite等,文本模式下的vi、vim(vi的增强版本)、emacs等。其中vi和emacs是Linux系统中最常用的两个编辑器。本节主要介绍vi编辑器,主要内容包括:
希望通过本节的学习,能够基本掌握vi编辑器的使用方法和相关技巧,能够独立完成程序源代码的编辑和修改。
vi编辑器是Linux系统下的标准编辑器。虽然命令繁多复杂,并且绝大多数功能的输入都依靠键盘来完成,但如果我们熟悉掌握之后就会发现vi编辑器的功能、效率等都是其他图形界面编辑器无法比拟的,下面让我们来揭开它的神秘面纱。
在终端输入命令vi,后面接着输入想要创建或编辑的文件名,即可进入vi编辑器。
$ vi example.c
命令的结果如图1-1所示:
图1-1 vi编辑器新建文件
如果vi命令后面所输入的文件不存在,则系统会自动创建一个以该字符串命名的文本文件。如上图,光标停留在左上方,由于新建文件中没有任何内容,所以每一行的开头都为波浪线。窗口的底部为状态栏,显示当前编辑文件的相关信息。
打开文件后,光标停留在屏幕左上方。状态栏显示了当前编辑文件的文件名、行数以及字符数等信息,如图1-2所示。
vi命令打开文件时还可以带参数,这些参数用于修正vi的打开方式,主要包括如下:
如果只需阅读文件内容而不想对其进行修改时,可以使用这个参数,以防对文件的误操作,如下:
$ vi –R example.c
运行命令如图1-3所示。
图1-2 vi编辑器打开文件 图1-3 以只读方式打开文件
该参数可以在保存文件时对其进行加密,以后每次打开都需要输入密钥,否则将出现乱码。
如果在打开vi时,没有给出文件名,也没有给出任何参数,即:
$ vi
命令结果如图1-4所示:
图1-4 直接打开vi编辑器
此时,vi编辑器中所有行都为空,窗口中央给出的是vi编辑器的使用帮助,当用户在vi中输入文本或执行命令时,该帮助信息会自动消失。另外,如果以这种方式打开vi编辑器,在保存文件时,需要指定文件名。
vi有3种工作模式:普通模式、编辑模式和命令模式,这3种模式之间可以相互切换,如图1-5所示。
图1-5 vi编辑器的工作模式
由Shell进入vi编辑器时,首先进入普通模式。在普通模式下,从键盘输入任何字符都被当作命令来解释。普通模式下没有任何提示符,当输入命令时立即执行,不需要回车,而且输入的字符不会在屏幕上显示出来。
普通模式下可以输入命令进行光标的移动,字符、单词、行的复制、粘帖以及删除等操作。
编辑模式主要用于文本的输入。在该模式下,用户输入的任何字符都被作为文件的内容保存起来,并在屏幕上显示出来。在普通模式下,输入a(附加命令)、c(修改命令)、i(插入命令)、o(另起新行)、r(取代命令)以及s(替换命令)都将进入编辑模式,此时vi窗口的最后一行会显示“插入”。输入i命令时屏幕上并无变化,但是通过执行i命令,编辑器由普通模式切换为编辑模式,如图1-6所示。
图1-6 编辑器由普通模式切换为编辑模式
接着输入x=,屏幕显示如图1-7所示。
要返回到普通模式,只需按键Esc即可。
图1-7 在编辑模式下输入字符
命令模式下,用户可以对文件进行一些附加处理。尽管普通模式下的命令可以完成很多功能,但要执行一些如字符串查找、替换、显示行号等操作还是必须要进入命令模式的。
在普通模式下输入冒号即可进入命令模式,此时vi窗口的状态行会显示出冒号,等待用户输入命令。用户输入完成后,按回车执行,之后vi编辑器又返回到普通模式下。
当编辑完毕,需要退出vi编辑器时,可以在命令模式下使用命令退出vi,返回到Shell。
保存退出是指将缓冲区中的内容写入文件,可以使用的命令为wq和x,如图1-8所示。
图1-8 vi编辑器的保存退出
强行退出是指无条件退出,不把缓冲区中的内容写入文件,所使用的命令为q!。其中感叹号“!”表示不管文件是否被修改,放弃所修改的内容强行退出。
直接退出和强行退出的区别是如果文件内容有修改则给出提示,如图1-9所示,否则直接退出。直接退出使用的命令为q。
图1-9 vi编辑器的直接退出
应该要注意一点,vi编辑器编辑文件时,用户的操作都是基于缓冲区中的副本进行的。如果退出时没有保存到磁盘,则缓冲区中的内容就会被丢失。所以,在退出vi编辑器时应该考虑是否需要保存所编辑的内容,然后再选择执行合适的退出命令。保存命令为w,如果打开vi时没有给出文件名,这时还需要给相互文件名。
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能