知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

linux/unix必备使用工具--vi的使用方法

发布时间:2014-09-05 17:13:04作者:知识屋

基本的vi上手操作:
1、  确定你在主目录中。在你的主目录中创建名为vitext的文件
>>$cd
>>$pwd
>>vi vitext
2、当打开一个vi文件,自动处于命令模式。按i键(insert)或者按a键(append)转向输入(text)模式。使用a或者i仅仅决定了是否是在光标前面或者后面开始打字。没有任何迹象告诉你处于输入模式。
通过按ESC键从输入模式转向命令模式。按1秒钟。如果按两次ESC,你将听到“嘟嘟”响(有的终端不会)。这个声音提示你已经处于命令模式。现在再按一次i使你返回输入模式。继续下一步。
-i
-ESC
-ESC(嘟嘟声)
-i
3、正确地输入下面的文本,一行接一行的显示出来。然后键入字母表,每行一个字母。接着将显示a-d跳过一直到z。对于填充稍后需要用到的几个屏幕信息,添加字母表 是一种容易的方式。
This is a training session about the usage of the vi editor. We need some more lines to learn the most common commands of the editor. We are now in the entry mode and we will switch right after this to the command mode.
a
b
c
d

z
4.返回命令模式。写入并退出文件。注意到你一按 :(colon),它就出现在你的输入区域的最后一行的下面。一旦缓存器是空的并且文件关闭了,你将看到一条给出文件中行和字母数量的信息。
>>ESC(使你进入命令模式)
>>:wq(<shift-zz>或者:x是另外一种写或退出的方式)
 
    Vi编辑器简介
1、有三种工作模式:命令模式、文本模式、扩展模式
1)命令模式:以vi打开一个文件就直接进入命令模式(这是默认的模式)。在这个模式中,你可以使用上下左右按键来移动光标,可以删除字符或者删除整行,也可以复制、粘贴文件数据。
2)文本模式:在一般模式下可以进行删除、复制、粘贴等的操作,但是无法编辑文件的内容。等你按下“i,I,o,O,a,A,r,R”等任意一个字母之后才会进入编辑模式。
3)扩展模式:在一般模式当中,输入“:、/、?”三个中的任何一个按钮,就可以将光标移动到最下面那一行。在这个模式当中,可以提供查找数据的操作,而读取、保存、大量替
换字符、离开vi、显示行号等的操作也是在此模式中完成的。


 
   按键说明
使用vi打开vitext。注意文件的底行显示文件的名字和字母的数量。
>>$vi vitext
使用方向键和h,j,k键,练习往下移动光标一行,往上一行,往右两个字母以及退后两个字母。
>>j(往下一行)
>>k(往上一行)
>>l(往右一个字母)
>>h(往左一个字母)
>>选择合适的方向键重做
你可能不想自始至终都用光标移动一个字母或一行。练习使用光标移动键灵活变换页与行。从以前的步骤开始使用光标移动键,使你的光标处在文件的第一行。当处于命令模式,进行一下步骤:
向前移动一页
>><ctrl-f>或者按Page Down(PgDn)键。(在ASCLL终端上没有Page Down键并且在你终端上的这个键可能不是这个功能)
向后移动一页
>><ctrl-b>或者按Page Up (PgUp)键。(在ASCLL终端上没有Page Up键并且在你终端上的这个键可能不是这个功能)
将光标移至文件的最后一行
>><shift-G>
将光标移至文件的第一行
>>gg
或者
>>1<shift-G>
或者:1 Enter
将光标移至文件的第4行
>>4<shift-G>或者:4 Enter
将光标移至文件的末尾
>>$
将光标移至文件的开头
>>0

8.将你的光标移至文件的顶部。寻找单词entry。 你的光标应该在e上。转向输入模式并添加单词“text”。不要忘记单词后面的空格。
>>1<shift-G>或者:1
>>/entry
>>i
>>text
9.将光标移至同一行单词mode后面的空格处。输入一个逗号。记住,你仍然处于出入模式。
>>Esc
>>将光标置于mode后面的空格处
>>i,
10.进入命令模式。将光标置于以“me more lines”头的行的任何位置。插入一个空白行形成两个段落。
>>ESC
>>将光标置于以“some more lines”开头的行
>>o
11.如在以前的步骤中一样打开一个空白行,自动使你进入输入模式;因此,返回到命令模式。现在保存到目前为止你所做的更改,但不要退出编辑器。
>>ESC
>>:w
12.当仍处于命令模式时,清除字符c,e,g但在它们之间留下空白行;换句话说,不要删除整行,只删除字母。然后返回并删除空白行。这将使你练习使用两种删除功能。
>>将光标移至c上;按x
>>将光标移至e上;按x
>>将光标移至g上;按x
>>将光标移至每个空白行上;按dd
13.现在用字符z取代h
>>将光标移至h上
>>按r
>>z
14.你刚决定你确实不想保存对字符的更改。退出编辑会话不对上次保存后的更改进行保存。
>>:q!
15.再次编辑vitext。首先,逐一复制从首段(包括空白行)到文件末尾的每行。当那个完成后,同时复制从第二段到文件末尾。
>>$ vi vitest
>>将光标置于第一行上; 按yy
>> <shift-G>; 按p
>>2<shift-G>; 按yy
>> <shift-G>; 按p
>> 3<shift-G>; 按yy
>> <shift-G>; 按p
>> 4<shift-G>; 按2yy
>> <shift-G>; 按p
16.你刚决定你向文件末尾处添加的行看起来不太准确。用一个命令将它们所有的都删除。
>> 将光标移至将被删除的文件底部的首个被复制的行
>> 数出要删除的行数
>>5dd(如果你将空白行也移动,数目可能不一样)
17.现在,在你对这个文件做任何其他事之前,你决定你需要将当前的时间插入到文件的首行。在此不要退出vi编辑器。
>>:!date>datelife
>>当你看到信息Press return to continue时不要按enter键
>>:0r datelife
>>按两次enter继续
③ 使用设置自定义编辑会话。
18.在一个编辑会话当中可以使用set命令临时设置选项。返回文件的顶层。确保你处于命令模式并设置以下命令:
a.在右边距15个间隔处设置自动换行
b.当处于输入模式时显示INPUT MODE信息
c.开启行标注
>>1<shift-G>
>>ESC
>>:set wrapmargin=15
>>:set showmode
>>:set number
19.测试以前的指令中设置的每个选项。
>>应该将行编号
>>使用i或a进入输入模式。你将会在显示屏的右下端看到INPUT MODE信息
>>键入两行不同的文本测试自动换行
>>通过按ESC进入命令模式。INPUT MODE信息将从你的显示屏上消失
20.写入文件并退出编辑器。
④ 命令行编辑
21.既然你熟悉vi模式和命令,练习命令行编辑。使用set O vi命令建立你的会话并使用命令行编辑。
>>$set o vi
22.现在你可以回顾以前执行过的命令,编辑它们,并重新提交。让我们创建一个命令历史来工作。列出(简单的而不是长的)目录/usr的内容。显示文件/etc/filesystems的内容。Echo hello。
>>$ls /usr
>>$cat /etc/filesystems
>>$echo hello
23.假设你想编辑一个你刚才执行过的命令。按ESC键进入vi命令模式。尝试按k键几次在命令列表中向上移动。尝试按j键几次在命令列表中向下移动。这个对命令的回顾实质上是寻找你以前执行过的命令的缓存。命令实际上被储存在你的主目录下的.sh_history文件中。
>>ESC
>>k(在缓存的命令列表中向上移动)
>>j(在缓存的命令列表中向下移动)
24.检索ls命令。使用l键将你的光标移至/in/usr。(注意:方向键趋于将整行清除。你必须为右边使用l键以及为左边使用h键)使用i键插入文本并将这个命令变为长列表。执行它。
>>k(到达ls/usr命令)
>>l(到达/)
>>i(进入输入模式。你也可以使用a进行附加,如果光标在/前的空格上)
>>-l
>>Enter
25.回顾cat命令。这次列出文件/etc/passwd的内容
>>ESC
>>k(到达以前的cat命令)
>>l(将光标移至filesystems中的f)
>>D(清除余下的行,或者dw命令清除单词)
>>a(附加文本)
>>passwd
>>Enter
26.回顾cat命令。转到行末(记住$)。在命令的结尾添加wc进行管道输出,计算行数。
>>ESC
>>k(到达最后的cat命令)
>>$
>>a
>>| wc l
>>Enter

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜