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相关技术资讯 
    这里写图片描述

  • 相关阅读:
    《使用Hibernate开发租房系统》内部测试笔试题
    C++第十课 字符串
    【011】字符数组
    C++第九课 数组
    C++第八课 局部变量和全局变量
    【010】递归函数
    C++第七课 函数2
    【009】阅读代码
    C++第六课 函数1
    【008】查找素数
  • 原文地址:https://www.cnblogs.com/libin2015/p/6762033.html
Copyright © 2011-2022 走看看