zoukankan      html  css  js  c++  java
  • 【转】Linux 文档编辑 : ex 命令详解

    原文:https://blog.csdn.net/yexiangCSDN/article/details/80981393

    -------------------

    ex命令用于在Ex模式下启动vim文本编辑器。

    ex执行效果如同vi -E,使用语法及参数可参照vi指令,如要从Ex模式回到普通模式,则在vim中输入":vi"或":visual"指令即可。

    语法
    ex [选项][参数]
    [选项][参数]
    参数说明:

    +数字:从文件指定的数字行开始显示-b:使用二进制模式编辑文件-c 指令:编辑完第一个文件后执行指定的指令-d :编辑多个文件时,显示差异部分-m :不允许修改文件-n :不使用缓存-oN:其中 N 为数字-r :列出缓存,并显示恢复信息-R :以只读的方式打开文件-s :不显示任何错误信息-V :显示指令的详细执行过程--help :显示帮助信息--version :显示版本信息

    实例
    在ex 指令后输入文件名按回车键后,即可进入ex 编辑模式,如编辑testfile文件,使用的命令格式如下:

    <span style="color:#000000">ex testfile </span>
    输出的信息如下:

    "testfile" 5L, 95C
    5L, 95C
    "testfile"表示文件名,5L表示5 行,95 表示字节数

    进入ex 模式。输入"visual"回到正常模式

    它的操作与vim 中是一样的,此时如果在":"后输入"visual"后按回车键,将进入到vi 指令全屏界面;如果输入"q",则退出编辑器。

    详解:

    Introduction
    ex是Unix下的一个文本编辑器。至于为什么突然讲到这个,那是因为vi就是ex的"visual mode"。
    你已经见过vi中的":w", ":q!",没错,这些就是来自于ex命令。
    ex命令远不止这些,实际上所有":"开头的命令,也就是你在vi最下面看到的命令行,都属于ex命令。
    接下来我要详细的介绍一下,ex命令的用法。

    ex简介
    首先我们打开ex:


    $ ex file
    "file" 3L, 16C
    Entering Ex mode. Type "visual" to go to Normal mode.
    输入1,3,屏幕上将显示1-3行的内容。
    试着输入"visual"或者"vi",是不是回到了熟悉的vi界面?
    想要使用ex,输入":",是不是在最下面看到了ex命令行?
    ex究竟是什么东西?事实上这和历史有关,在早期,显示器并不像现在这么好用,那会的“显示器”只有按行显示的功能。当你希望显示某行,输入命令,“显示器”上才会显示那行。试着想想一个不支持上下左右滚动的界面。
    而控制这个“显示器”显示文本的命令行工具,就是ex。

    ex vs vi
    为什么我们有了vi还要使用ex?因为对于大段文本的操作,ex命令比vi命令行模式(command mode)更方便。
    ex的命令都是基于行的(早期的“显示器”,或者你的小型计算器,除了行列什么都没有了),如:

    :3:显示第三行
    :3,5:显示第3到5行
    :3s/hello/hi:将第三行的hello替换成hi,这里s是substitute的缩写

    而在vi命令行模式下,你只需要简单的:

    3G

    但是对于删除3-6行,ex命令只需要:

    :3,6d:这里d是delete的缩写

    而在vi命令行模式下,你需要:

    3G
    3dd:这里你还需要计算6-3=3

    另外一个例子,将3-6行放到14行的后面,ex命令只需要:

    :3,6m14

    而在vi命令行模式下,你需要:

    3G
    3dd
    14G
    pp

    ex的优势就体现在这里。

    ex行
    上面我们见过,ex命令都是基于行的,而获得行号有下面几种方法:

    3:直接输入行号
    3-6:行范围
    .:当前行
    /pattern/:满足pattern的第一行
    $:最后一行
    %:每一行

    你可以组合这些,如:

    :3,$d:删除3行到最后一行
    :%d:删掉每一行

    你也可以:

    :.,.+3d:删除当前行及后面3行
    :/pattern/d:删除包含pattern的第一行
    :/pattern1/,/pattern2/d:删除从pattern1到pattern2的行

    搜索
    在vi中,使用/进行搜索,是不是觉得每次使用n/N来查找下一个太慢了?试试ex吧:

    :g/pattern/nu

    是不是所有包含pattern的行以及行号都打印出来了?这里g的意思是global,全文的意思,nu是number,行号的意思。
    你也可以把g换成3,6之类的,只在3-6行中搜索。

    批处理
    在ex中,也可以用"|"来批处理多条命令,如:

    3,6d | g/csprojectedu/nu:删除3-6行后,打印所有包含csprojectedu的行。

    保存和退出文件
    在Vim实战指南(一):基础编辑命令中,我们介绍过保存和退出文件的方法,实际上:

    ZZ:是vi命令行模式下的命令
    :q:ex命令,退出文件,如果有未保存的修改则无法退出
    :q!:ex命令:强制退出
    :x:ex命令,保存和退出文件
    :w:ex命令,保存文件
    :w!:ex命令,强制保存
    :w another:将文件另存为文件another
    :3,6w another:将3-6行另存为文件another(编辑神器)
    :9,13w >>another:将9-13行追加到文件another后面(编辑神器2)
    :r another2:将another2文件的内容追到到当前文件光标后(编辑神器3)
    :3r /home/user/another3:将/home/user/another3文件的内容追到到当前文件第3行后(编辑神器4)

    编辑神器1-4,是不是很方便?

    多文件处理
    vi支持多文件处理,同时处理多文件不仅节省你多次打开和退出vi的时间,也可以让你反复利用vi的缓存区,关于缓存区的说明见Vim实战指南(三):高级技巧。
    首先在命令行打开多个文件:


    $ vi filename1 filename2
    首先打开filename1,你可以通过ex的命令来切换:

    :n:切换到下一个文件
    :N:切换到上一个文件
    :args:显示所有文件
    :rewind/:rew:跳到第一个文件
    :last:跳到最后一个文件

    记住,缓存区是公用的,你可以将filename1中选择的内容,通过缓存区拷贝到filename2中。

    Summary
    掌握ex命令后,是不是发现vi越来越好用了?别着急,更强大更好用的ex命令还在后面。
    ————————————————
    版权声明:本文为CSDN博主「HarkerYX」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/yexiangCSDN/article/details/80981393

  • 相关阅读:
    Java实现 洛谷 P1028 数的计算
    Java实现 洛谷 P1028 数的计算
    Java实现 洛谷 P1028 数的计算
    Nginx+Memcached+Tomcat集群配置(MSM--win7 64bit)
    Tomcat安装、配置、优化及负载均衡详解
    Nginx+Tomcat+Memcached部署
    Nginx+Tomcat+Memcached实现会话保持(MSM)
    Nginx+tomcat配置集群负载均衡
    Nginx+Tomcat搭建高性能负载均衡集群的实现方法
    Nginx+Tomcat的配合使用
  • 原文地址:https://www.cnblogs.com/oxspirt/p/14736407.html
Copyright © 2011-2022 走看看