免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1019 | 回复: 0
打印 上一主题 下一主题

学习使用vi编辑器 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-02 18:06 |只看该作者 |倒序浏览

使用 vi
                               
vi
编辑器几乎在所有 Linux 和 UNIX 系统上都存在。实际上,如果系统只有一个编辑器,那么它可能就是 vi,所以了解 vi
的操作方式是有意义的。本节介绍一些基本的 vi 编辑命令。要想全面了解 vi,请阅读 “vi intro -- the cheat sheet
method”或者参考手册页或相关书籍。
       
                               
启动 vi
                               
大多数 Linux 发行版本现在附带 vim(表示 Vi IMproved,改进的 vi)编辑器而不是传统的 vi。vim 向上兼容 vi,并有图形模式(gvim)以及标准的 vi 文本模式界面。vi 命令常常是 vim 程序的别名或符号链接。了解使用的究竟是哪个命令。
       
                               
       
                               
        要启动 vi 编辑器,使用 vi 命令并以文件名作为参数。有许多选项可供选用,细节请参考手册页。使用命令
                                       
                                        vi
                                       
                                       
应该会看到与清单 115 相似的显示。如果使用 vim,一些单词可能是不同颜色的。vim 有语法突出显示模式(原始的 vi 编辑器没有这种模式),在系统上这种模式可能是默认打开的。
       
                               
vi 模式
                               
vi 编辑器有两种操作模式:
       
命令模式在命令模式中,可以在文件中移动并执行编辑操作,比如搜索文本、删除文本、修改文本等等。常常以命令模式启动。插入模式在插入模式中,在插入点上将新文本输入文件。要返回命令模式,按下 Esc 键。
                               
                               
这两个模式决定了编辑器的行为。在开发 vi 的时候,并不是所有的终端键盘上都有光标移动键,所以在 vi 中可以做的所有事情都可以使用标准打字机上的键加上 EscInsert 键来完成。但是,可以将 vi 配置为使用额外的键(如果这些键可用的话);键盘上的大多数键在 vi 中都有作用。vi 是在早期的终端连接时代开发的,所以 vi 使用的命令非常短,因此命令的含义比较含混。
       
                               
离开 vi
                               
在学习新编辑器时,我喜欢先了解如何退出它,以免意外退出。下面这些退出 vi 的方式包括保存或放弃修改,或者从头重新开始。如果这些命令看起来无效,那么您可能是在插入模式中,所以要按 Esc 离开插入模式并返回命令模式。
       
                                :q!退出文件编辑并放弃所有修改。这是摆脱麻烦的常用方法。:w!写文件(无论是否修改了)。尝试覆盖现有文件、只读文件或其他不可写文件。可以提供一个文件名参数,编辑的结果将写到这个文件而不是原来的文件。一般来说,去掉 ! 比较安全,除非您知道自己正在做什么。
                ZZ如果文件已经修改了,就写文件,然后退出。这是正常退出 vi 的常用方法。:e!编辑文件的当前磁盘副本。这会重新装载文件,放弃已经做的修改。如果磁盘副本由于某些其他原因改变了,而您希望获得最新版本,那么可以使用这个命令。:!运行 shell 命令。输入命令并按 Enter。当命令完成时,会看到输出以及返回 vi 编辑的提示。
                               
注意:
       
  • 在输入冒号(:)时,光标将移动到屏幕底部,在这里输入命令和任何参数。
  • 如果从上面的命令中去掉惊叹号,就可能收到一个错误消息,比如指出修改还未保存或无法写输出文件(例如,正在编辑一个只读文件)。
                   
  • : 命令有更长的形式(:quit、:write、:edit),但是很少使用长形式。
                                   
                                   
    移动
                                   
    以下命令用于在文件中到处移动:
           
                                    h在当前行向左移动一个字符j移动到下一行k移动到上一行l在当前行向右移动一个字符w移动到当前行上的下一个单词e移动到当前行上的下一个单词末尾b移动到当前行上的前一个单词开头Ctrl-f向前滚动一页Ctrl-b向后滚动一页
                                   
    如果在这些命令前面输入一个数字,那么命令将重复执行这个数字指定的次数。这个次数称为重复计数,或简称为计数。例如,5h 将向左移动 5 个字符。对于许多 vi 命令都可以使用重复计数。
           
                                   
    移动到行
                                   
    以下命令用于移动到文件中的特定行:
           
                                    G移动到文件中的一个特定行。例如,3G 移动到第 3 行。如果没有参数,G 就移动到文件的最后一行。H相对于屏幕上的顶行进行移动。例如,3H 移动到从当前屏幕顶行开始的第 3 行。
                    L这与 H 相似,但是移动相对于屏幕的最后一行。所以,2L 移动到从屏幕最后一行开始的第 2 行。
                                   
    搜索
                                   
    可以使用正则表达式搜索文件中的文本:
           
                                    /使用 / 后面跟着一个正则表达式,在文件中向前搜索。?使用 ? 后面跟着一个正则表达式,在文件中向后搜索。n使用 n 以任意方向重复上一次搜索。
                                   
    可以在上面的任何搜索命令前面加上一个数字,表示重复计数。所以,3/x 将搜索从当前点开始的第 3 个 x,这相当于 /x 后面跟着 2n。
                                   
    修改文本
                                   
    使用以下命令插入、删除或修改文本:
           
                                    i在当前位置的字符前面进入插入模式。输入文本并按 Esc 返回命令模式。使用 I 在当前行的开头进行插入。a在当前位置的字符后面进入插入模式。输入文本并按 Esc 返回命令模式。使用 A 在当前行的末尾进行插入。c使用 c 修改当前字符并进入插入模式以输入替换字符。
                    o在当前行下面打开一个新行来进行文本插入。使用 O 在当前行上面打开一个新行。cw删除当前单词的剩余部分并进入插入模式以替换它。使用重复计数替换多个单词。使用 c$ 一直替换到行末。        dw与上面的 cw(和 c$)一样,但是不进入插入模式。
                    dd删除当前行。使用重复计数删除多行。                x删除光标位置的字符。使用重复计数删除多个字符。p将最后删除的文本放在当前字符的后面。使用 P 将它放在当前字符的前面。
                    xpx 和 p 的组合是一种有用的命令。这个命令将光标位置的字符与它右边的字符对换。多多练习!应该多多编辑/etc/conf*文件,其实看看.sh也不错。
    http://sourceforge.net/project/showfiles.php?group_id=56777


    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/6303/showart_149861.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP