zoukankan      html  css  js  c++  java
  • Spark修炼之道(基础篇)——Linux大数据开发基础:第六节:vi、vim编辑器(二)(转载)

    转自云栖社区:

    https://yq.aliyun.com/articles/60354?spm=5176.8251999.569296.36.siyXRn

     
    周志湖 2015-08-25 21:23:00 浏览305 评论0

    摘要: 本节主要内容 缓冲区的使用 文件的存盘与读盘 文本查找 文本替换 作者:周志湖 微信号:zhouzhihubeyond 网名:摇摆少年梦 1. 缓冲区的使用 在利用vim进行文本编辑时,编辑修改后的文本不会立即保存到硬盘上,而是保存在缓冲区中,如果没有把缓冲区里的文件存盘,原始文件不会被更改。vim在打开文件时将文本内容读到缓冲区中,在进行文本编辑时,修

    本节主要内容

    1. 缓冲区的使用
    2. 文件的存盘与读盘
    3. 文本查找
    4. 文本替换

    作者:周志湖 
    微信号:zhouzhihubeyond 
    网名:摇摆少年梦

    1. 缓冲区的使用

    在利用vim进行文本编辑时,编辑修改后的文本不会立即保存到硬盘上,而是保存在缓冲区中,如果没有把缓冲区里的文件存盘,原始文件不会被更改。vim在打开文件时将文本内容读到缓冲区中,在进行文本编辑时,修改的文本保存在缓冲区,此时硬盘上的原文件不变。下面让我们来演示一下缓冲区的使用。 
    假设采用vim 同时打开两个文本文件:

    root@ubuntu:/home/xtwy# vim test2.txt test1.txt
    //打开文件后,默认打开的是test2.txt
    //此时我们使用:buffers命令可以看查缓冲区
    //得到如下结果
    :buffers
      1 %a   "test2.txt"                    line 1
      2      "test1.txt"                    line 0
    

    这里写图片描述

    :buffers命令给出的是当前编辑中所有的缓冲区状态,前面的数字是缓冲区的数字标记,第二个标记就是缓冲区当前的状态,紧接着是与缓冲区所关联的文件名。缓冲区的状态有以下几种:
    
    - (非活动的缓冲区)
    a (激活缓冲区)
    h (隐藏的缓冲区)
    % (当前的缓冲区)
    # (交换缓冲区)
    = (只读缓冲区)
    + (已经更改的缓冲区)

    在命令模式输入:open test1.txt进入test1.txt编辑界面,然后再输入:buffers查看缓冲区状态,得到如下结果

    :buffers
      1 #    "test2.txt"                    line 1
      2 %a   "test1.txt"                    line 1
    

    这里写图片描述

    可以看到此时test1.txt加载为活动缓冲区,而test2.txt则被加载到交换缓冲区。此时利用:bprevious命令可以切换test2.txt为活动缓冲区,

    这里写图片描述
    执行后得到: 
    这里写图片描述
    可以看到,此时已经切换回到text2.txt,即将text2.txt加载到当前活动缓冲区当中,采用:buffers命令得到如下结果: 
    这里写图片描述

    更多缓冲区操作命令如下:

    :buffers    电焊工缓冲区状态
    :buffer 编辑指定缓冲区
    :ball   编辑所有缓冲区
    :bnext  到下一缓冲区
    :bprevious  到前一缓冲区
    :blast  到最后一个缓冲区
    :bfirst 到第一个缓冲区
    :badd   增加缓冲区
    :bdelete    删除缓冲区
    :bunload    卸载缓冲区

    2. 文件的存盘与读盘

    (一)保存并退出

    在编辑模式中,如果文本编辑任务已经完成,想直接保存退出,返回到Linux CLI命令行的话,直接按ZZ即可。

    (二)读取文件内容到缓冲区

    在编辑模式中,采用:r命令读取文件内容到当前缓冲区, 
    这里写图片描述
    :r test1.txt可以test1.txt文件内容写到缓冲区 
    这里写图片描述

    (三)将缓冲区内容写到文件

    在编辑模式中,采用:w命令将修改后的文件写到磁盘,也可以使用:wq命令将修改的文件写到磁盘上后退出vim返回inux CLI,如果不想保存直接退出,则使用:q!命令直接退出vim,返回到CLI命令行。

    3. 文本查找

    (1)一般搜索

    使用?或/进行字符串查找,例如: 
    这里写图片描述
    回车之后,光标将定位到下一个Spark上,如果还想往下搜索,则按n(next),如果想往上搜索,则按N

    (2)正则表达式搜索

    正则表达式搜索是指加入了像”^,$,.”等特殊匹配字符,它们的作用如下表:

    搜索字符串搜索描述举例
    :/^Spark 搜索以Spark为开头的行 Spark is ….
    :/YARN$ 搜索以YARN为结尾的行 …Hadoop YARN
    :/Ha…p 搜索Ha开头,中间有三个字符且以p结尾的字符串 Hadoop、Hadaap
    :/e> 查找以e结尾的字符串,其中>符号是字符串结束指示符号,这里不是转义字符,而是与>组合到一起,来表示特殊意义 like、source
    :/<Had 查找以Had作为开始的字符串,< 同样具有特殊意义 Hadoop、Hadoo
    :/Spa* 查看字符串中出现至少一次Spar的字符串,< 同样具有特殊意义 Spark、SpaSpark
    :/Sp[ae]rk 匹配Spark或Sperk Spark、Sperk

    4. 文本替换

    文本替换使用以下语法格式:

    :[g][address]s/search-string/replace-string[/option]

    其中address用于指定替换范围,下表给出的是常用示例:

    //将当前缓冲区的第一行中的Downloading替换为Download
    : 1 s/Downloading/Download
    
    //将当前缓冲区中的第一行到第五行中的Spark替换为spark
    :1,5 s/Spark/spark
    
    //将当前缓冲区中的第一行到当前光标所在行的Spark替换为spark
    :1,. s/Spark/spark
    
    //将当前光标所在行到缓冲区最后一行的Spark替换为spark
    :.,$ s/Spark/spark
    
    //将整个缓冲区中的Spark替换为spark
    :% s/Spark/spark
    
    //当前行中第一次搜索到的Spark替换为spark
    : s/Spark/spark
    
    //将当前行中所有的Spark替换为spark
    :s/Spark/spark/g  
    
    //将所有的and转换成And,不包括theta这种字符串,只会作用于the这种单独存在的字符串
    :% s/<the>/The/g  
    

    添加公众微信号,可以了解更多最新Spark、Scala相关技术资讯 
    这里写图片描述

  • 相关阅读:
    UVa 1349 (二分图最小权完美匹配) Optimal Bus Route Design
    UVa 1658 (拆点法 最小费用流) Admiral
    UVa 11082 (网络流建模) Matrix Decompressing
    UVa 753 (二分图最大匹配) A Plug for UNIX
    UVa 1451 (数形结合 单调栈) Average
    UVa 1471 (LIS变形) Defense Lines
    UVa 11572 (滑动窗口) Unique Snowflakes
    UVa 1606 (极角排序) Amphiphilic Carbon Molecules
    UVa 11054 Wine trading in Gergovia
    UVa 140 (枚举排列) Bandwidth
  • 原文地址:https://www.cnblogs.com/libin2015/p/6762033.html
Copyright © 2011-2022 走看看