- 论坛徽章:
- 0
|
http://www.linuxeden.com/doc/21073.html
第二十四课 全屏幕文本编辑器Vi
本章介绍Linux上最常用的文本编辑器Vi。文本编辑器是所有计算机系统中最常使用的一种工具。用户在使用计算机的时候,往往需要建立自己的文件,无论是一般的文本文件、数据文件,还是编写的源程序文件,这些工作都离不开编辑器。
Linux系统提供了一个完整的编辑器家族系列,如Ed、Ex、Vi和Emacs等,按功能它们可以分为两大类:行编辑器(Ed、Ex)和全屏幕编辑器(Vi、Emacs)。行编辑器每次只能对一行进行操作,使用起来很不方便。而全屏幕编辑器可以对整个屏幕进行编辑,用户编辑的文件直接显示在屏幕上,修改的结果可以立即看出来,克服了行编辑的那种不直观的操作方式,便于用户学习和使用,具有强大的功能。
Vi是Linux系统的第一个全屏幕交互式编辑程序,它从诞生至今一直得到广大用户的青睐,历经数十年仍然是人们主要使用的文本编辑工具,足见其生命力之强,而强大的生命力是其强大的功能带来的。
本章中,我们将循序渐进地介绍如何使用Vi来建立、编辑、显示以及处理文件。(注:文中的大写字母为[shift]键+相应的小写字母的组合)
Vi简介
Vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。
Vi不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。
Vi没有菜单,只有命令,且命令繁多。Vi有三种基本工作模式:命令行模式、文本输入模式和末行模式。
命令行模式
任何时候,不管用户处于何种模式,只要按一下键,即可使Vi进入命令行模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。
在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。
文本输入模式
在命令模式下输入插入命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键即可。
末行模式
末行模式也称ex转义模式。
Vi和Ex编辑器的功能是相同的,二者主要区别是用户界面。在Vi中,命令通常是单个键,例如i、a、o等;而在Ex中,命令是以按回车键结束的正文行。Vi有一个专门的“转义”命令,可访问很多面向行的Ex命令。在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。例如:
:1,$s / A / a / g
则从文件第一行至文件尾将大写A全部替换成小写a。
若在末行模式下输入命令过程中改变了主意,可按键,或用退格键将输入的命令全部删除之后,再按一下退格键,即可使Vi回到命令模式下。
Vi编辑器的三种工作模式之间的转换如图11-1所示。
如果要从命令模式转换到编辑模式,可以键入命令a或者i;如果需要从文本模式返回,则按Esc键即可。在命令模式下输入“:”即可切换到末行模式,然后输入命令。
第二十五课 Vi的进入与退出 2000年/6月/13日
Vi 的进入
用户登录到系统中之后,系统给出提示符“$”。在提示符后键入Vi和想要编辑(或建立)的文件名,便可进入Vi。
[例1] 键入命令:
$ vi example.c
屏幕显示如下:
~
~
~
~
~
~
~
~
~
~
~
~
~
“ example.c” [New File]
如果只键入Vi,而不带文件名,也可以进入Vi。之后在光标处键入文件内容,退出Vi时,只需在退出命令后输入文件名即可。
进入Vi之后,首先进入的就是命令模式,也就是说等待命令输入而不是文本输入。这时输入的字母都将作为命令来解释。光标停在屏幕第一行首位上(用 表示),其余各行行首均有一个“~”符号,表示该行为空行。最后一行也称状态行,显示出当前正在编辑的文件名以及其状态。如本例是[New File],表示example.c是一个新建的文件。如果example.c文件已在系统中存在,那么输入上述命令后,则在屏幕上显示出该文件的内容,并且光标停在第一行的首位,在状态行显示出该文件的文件名、行数和字符数。
[例2] 键入命令:
$ vi example.c
然后键入:
#include
main ( )
{ int k ;
for ( k=0 ; k
第三部分 VI编辑器
vi是很著名的UNIX文本编辑器,它的功能很强大,不过,对与初学者也很繁。没关系,我们虽然介绍很多,但不要求大家都掌握它的没一项,只要记住几项常用的就可以了。
vi的操作分编辑状态与命令状态,我们要介绍的是其中的命令状态。所谓的编辑状态,就是指你可以编辑内容的状态,而命令状态是指可以对内容进行操作的状态。
移动操作
k,光标向上移动一个字符。
j, 光标向下移动一个字符。
h, 光标向左移动一个字符。
l, 光标向右移动一个字符。
或者是四个方向键。
:0,文章第一行;
:$, 文章最后一行;
ctrl+f ,后翻页。
ctrl+b,前翻页。
插入操作
i, 在光标当前位置插入。
I,在行首插入。
a,在当前光标后插入。
A,在当前行尾插入。
o,在光标当前行下插入。
O,在光标当前行上插入。
r, 替换当前光标处字符。
R,从光标处开始替换。
删除操作
x, 删除光标处字符。
dd, 删除当前行。
d0, 删除光标前半行。
d$, 删除光标后半行。
查找操作
/string 查找字符串(从前往后)
?string 查找字符串(从后往前)
n 继续查找
N 反向继续查找
% 查找对应括号
u 取消上次操作
ex命令状态
:set number 显示行号
:set smd 显示显示状态
:0 文件首
:1,5 copy 7 块拷贝
:1,5 del 块删除
:1,5 move 7 块移动
:1,$s/string1/string2/g 全文件查找string1并替换为string2
:wq! 存盘退出
:q! 退出不保存。
重点与难点:
i, 在光标当前位置插入。
I,在行首插入。
a,在当前光标后插入。
A,在当前行尾插入。
o,在光标当前行下插入。
O,在光标当前行上插入。
x,删除光标处字符。
dd,删除当前行。
/string 查找字符串。
?string 查找字符串(从后往前)。
n 继续查找。
N 反向继续查找。
:wq! 存盘退出。
:q! 退出不保存。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/12857/showart_230385.html |
|