Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1799047
  • 博文数量: 600
  • 博客积分: 10581
  • 博客等级: 上将
  • 技术积分: 6205
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 10:13
文章分类
文章存档

2016年(2)

2015年(9)

2014年(8)

2013年(5)

2012年(8)

2011年(36)

2010年(34)

2009年(451)

2008年(47)

分类:

2009-10-13 14:26:18

 
            vi(Visual)是以视觉为导向的全屏幕编辑器、共分为三种方式(mode):
            进入vi(在系统提示符下面输入以下指令):
            vi ????????? 进入vi而不读入任何文件
            vi filename????? 进入vi并读入指定名称的文件(新、旧文件均可)。
            vi +n filename????进入vi并且由文件的第几行开始。
            vi +filename ???? 进入vi并且由文件的最后一行开始。
            vi + /word filename ?进入vi并且由文件的word这个字开始。
            vi filename(s) ??? 进入vi并且将各指定文件列入名单内,第一个文件先读入。
            vedit???????? 进入vi并且在输入方式时会在状态行显示“INSERT MODE"。
            编辑数个文件(利用vi filename(s))进入vi后)
            :args ????????显示编辑名单中的各个文件名
            :n??????????读入编辑名单中的下一个文件
            :rew?????????读入编辑名单中的第一个文件
            :e#????????? 读入编辑名单内的前一个文件
            :e file ???????读入另一个文件进vi(此文件可不在编辑名单内),若原文件经修改还没有存档,则???????????应先以:
            w 存档。
            :e! file???????强迫读入另一个文件进入vi,原文件不作存档动作。
            存储及退出vi
            :w filename????? 存入指定文件,但未退出vi(若未指定文件名则为当前工作的文件名)。
            :wq 或者 :x或者zz?? 存文件,并且退出vi.
            :q??????????不作任何修改并退出vi。
            :q!????????? 放弃任何修改并退出vi。
            :!command?????? 暂时退出vi并执行shell指令,执行完毕后再回到vi。
            :sh????????? 暂时退出vi到系统下,结束时按Ctrl + d则回到vi。
            加数据指令
            i?????????? 在关标位置开始插入字符,结束时候按ESC键。
            I?????????? 在光标所在行的最前面开始加字,结束时按ESC键。
            a?????????? 在光标位置后开始加字,结束时按ESC键。
            A?????????? 在光标所在行的最后面开始加字,结束时按ESC键。
            o?????????? 在光标下加一空白行并开始加字,结束时按ESC键。
            O?????????? 在光标上加一空白行并开始加字,结束时按ESC键。
            !command???????执行shell指令,并把结果加在光标所在行的下一行。
            删除指令
            nx??????????删除由光标位置起始的n个字符(含光标位置,按一个x表示删除光标所在的字符)
            nX ????????? 删除由光标位置起始的n个字符(不含光标位置)。
            ndw????????? 删除光标位置其实的n个字符组(word)。
            d0 ????????? 将行的开始到光标位置的字符全部删除。
            d$ 或D ??????? 将光标位置起始到行尾的字符全部删除。
            ndd ?????????将光标位置起始的n行(整行)删除(dd表示删除光标所在行)。
            :start,endd????? 删除文件的第start到end行。
            关标移动
            0 ??????????移到一行的开始
            $ ??????????移到一行的最后
            [?????????? 移到文件开始位置
            ]?????????? 移到文件结束位置
            nh??????????往左移n位
            nl或者spacebar ??? 往右移n位
            nk??????????向上移n行
            n+??????????向上移n行,光标在该行的起始
            ni ????????? 向下移n行
            n-??????????向下移n行,光标在该行的起始
            H?????????? 移到屏幕的左上角
            M?????????? 移到屏幕的中间行开头
            L?????????? 移到屏幕的最后一行
            G?????????? 移到文件的最后一行
            nG或者:n???????移到文件的第n行
            nw??????????右移n个字组,标点符号属于字组
            nW??????????右移n个字组,标点符号不属于字组
            nb??????????左移n个字组,标点符号属于字组
            nB??????????左移n个字组,标点符号不属于字组
            Ctrl + u???????屏幕上卷半个菜单
            Ctrl + d ?????? 屏幕下卷半个菜单
            Ctrl + b ?????? 屏幕上卷一个菜单
            Ctrl + F ?????? 屏幕下卷一个菜单
            修改指令
            r?????????? 修改光标文件的字符
            R?????????? 从光标位置开始修改,结束时按ESC键
            new????????? 更改n组字符,结束时按ESC键
            ncc????????? 从光标所在位置开始更改n行,结束时按ESC键
            重排各行长度
            i?????????? 并按Enter将该行由光标所在处断开,并进入insert方式
            J ??????????把下一行的数据连接到本行之后
            寻找指令
            /text???????? 从光标位置往下找字串text
            ?text???????? 从光标位置往上找字串text
            n?????????? 继续找下一个字串(在输入上面的寻找指令之后使用)
            寻找并且取代指令
            :getxt1/s/ /text2/options ??将各行的text1替换为text2
            ???????????????option=g表示文件中所有的text1均被取代,若未输入任何option,则只有???????????????各行中的第一个出现的text1被取代
            ???????????????option=go 在屏幕显示各取代的行
            ???????????????option=gc 在每个字串取代之前要求确认?
            Start,endgtext1/s/ / text2/options ?同上,只寻找并取代第start~end行。
            或:Start,ends/text1/text2/options
            复制及移动文件
            :first,last co dest ?????将first 到last行的数据复制到目标行(dest)下面
            :Start,end?m dest??????将start 到 end行的数据移动到目标行(dest)下。???
            :r filename????????? 将指定文件的内容读入光标所在行下。
            nY ????????????? 将光标所在位置开始的n行数据暂存
            p?????????????? 复制暂存数据在光标的下一行
            P?????????????? 复制暂存数据在光标的上一行
            其他命令
            .?????????????? 重复前一指令
            u?????????????? 取消前一指令
            Ctrl + l???????????刷新屏幕显示
            :set number????????? 显示文件的行号,但不会存文件
            :set nonumber???????? 解除行号显示
            :set ai??????????? 设置每行起始位置(以光标当前位置为起始)
            :set noai?????????? 取消行起始位置设定
            :f 或 + g??????? 告诉用户有关现行编辑文件的数据。
 
阅读(646) | 评论(0) | 转发(0) |
0

上一篇: 进程控制

下一篇:UNIX系统常用命令

给主人留下些什么吧!~~