Spark修炼之道(基础篇)——Linux大数据开发基础:第五节:vi、vim编辑器(一)

本节主要内容

  1. vim编辑器的三种模式
  2. 移动光标
  3. 输入模式
  4. 修改文本

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

1. vi编辑器的三种模式

学会使用vi编辑器是学习linux系统的必备技术之一,因为一般的linux服务器是没有GUI界面的,linux运维及开发人员基本上都是通过命令行的方式进行文本编辑或程序编写的。vi编辑器是linux内置的文本编辑器,几乎所有的类unix系统中都内置了vi编辑器,而其它编辑器则不一定,另外很多软件会调用vi编辑进行内容编写,例如crontab定时任务。较之于其它编辑器或GUI编辑器,vi编辑速度是最快的。vim编辑器可以看作vi的高级版本,它实现了用颜色来进行特殊信息的显示,例如在进行java程序开发是,它会对某些关键字用颜色显示。
vi编辑器:

vim编辑器:

vi编辑器有三种模式,分别是一般模式、编辑模式及命令行模式
1 一般模式,采用vi命令直接进入一般模式
例如

root@ubuntu:/home/xtwy/compresse_demo# vi /etc/profile


在一般模式下,可以进行上下左右的光标移动、删除字符、行,还可以进行复制和粘贴操作

2 编辑模式,在一般模式中按”i,l,o,O,a,A,r,R”等做任意一个字符后,将进入编辑模式,下面给出的是在一般模式下输入”i”后,得到的编辑模式窗口。

窗口最底下会显示– INSERT–,此时可以对文本内容进行编辑模式,注意因为机器上已经安装了vim,所以显示时有颜色。

3 命令行模式
在编辑模式中,按”ESC”鍵可以回到一般模式。在一般模式中,输入”:,/,?”做任意一个字符,光标将移动到窗口底部,此时可以保存编辑好的文件或离开vi编辑器等,下图给出的是输入”:”之后得到的命令行模式窗口

2. 移动光标

1 单个字符移动
在一般模式化中,采用Up Arrow, Down Arrow键可以左右进行字符移动,也可以采用键盘上的 H、L键进行字符左右移动
空格键也可以单个字符地向右移动。

2 移动到某个特定字符
采用fx命令进行字符定位,例如fs可以定位到同一行s下一次现出的位置

按下fs后光标位置

采用Fx命令,可以将光标定位到x字符在同一行上一次出现的位置

3 按word移动

w命令将光标移动到下一下word的首字母,标点符号也算一个字。例如有下列文本:

【光标在这】class Student(name:String,age:Int,val studentNo:String) extends Person

在一般模式下,按1w之后
class 【光标在这】Student(name:String,age:Int,val studentNo:String) extends Person

W命令利用空格移动光标,例如

class 【光标在这】Student(name:String,age:Int,val studentNo:String) extends Person

在一般模式下,按1W之后
class Student(name:String,age:Int,val 【光标在这】studentNo:String) extends Person

B命令利用空格向后移动光标,例如

class Student(name:String,age:Int,val 【光标在这】studentNo:String) extends Person

在一般模式下,按1W之后
class 【光标在这】Student(name:String,age:Int,val studentNo:String) extends Person

b命令利用word包括标点向后移动光标,例如

class 【光标在这】Student(name:String,age:Int,val studentNo:String) extends Person
在一般模式下,按1b之后
【光标在这】class Student(name:String,age:Int,val studentNo:String) extends Person

e命令将光标移动到下一word的尾部,例如

class Student(name:String,age:Int,val studentNo:String)【光标在这】 extends Person

在一般模式下,按1e之后

class Student(name:String,age:Int,val studentNo:String) extends【光标在这】 Person

E命令将光标移动到下一个空格分隔字的尾部,例如

class 【光标在这】Student(name:String,age:Int,val studentNo:String) extends Person

在一般模式下,按1E之后
class Student(name:String,age:Int,val【光标在这】 studentNo:String) extends Person

4 按行移动

k键、Up Arrow键移动到上一行
j鍵、Down Arrow键移动到下一行

5 句子、段落移动
( 移动句子的开始,)移动到句子的结束位置,下面只给出(的演示

Apache Spark is a fast and general-purpose cluster computing system. 【光标在这】It provides high-level APIs in Java, Scala, Python and R, and an optimized engine that supports general execution graphs. It also supports a rich set of higher-level tools including Spark SQL for SQL and structured data processing, MLlib for machine learning, GraphX for graph processing, and Spark Streaming.
Downloading

一般模式下,输入(后

【光标在这】Apache Spark is a fast and general-purpose cluster computing system. It provides high-level APIs in Java, Scala, Python and R, and an optimized engine that supports general execution graphs. It also supports a rich set of higher-level tools including Spark SQL for SQL and structured data processing, MLlib for machine learning, GraphX for graph processing, and Spark Streaming.
Downloading

{移动到段落的开始,}移动到段落的结束,下面给出}的演示

Spark Overview
【光标在这】
Apache Spark is a fast and general-purpose cluster computing system. It provides high-level APIs in Java, Scala, Python and R, and an optimized engine that supports general execution graphs. It also supports a rich set of higher-level tools including Spark SQL for SQL and structured data processing, MLlib for machine learning, GraphX for graph processing, and Spark Streaming.
Downloading

一般模式下,输入(后

Spark Overview

Apache Spark is a fast and general-purpose cluster computing system. It provides high-level APIs in Java, Scala, Python and R, and an optimized engine that supports general execution graphs. It also supports a rich set of higher-level tools including Spark SQL for SQL and structured data processing, MLlib for machine learning, GraphX for graph processing, and Spark Streaming.
Downloading
【光标在这】

5 屏幕位置移动
H(home)移动到屏幕最顶部,下面的图是没有按H键时光标位置

按完键后,

按L键可以将光标移动到屏幕最底部,下面的图是上图按L键之后的效果

按M键可以将光标移动到屏幕中间,下图是上图按M鍵后的效果

CTR+D(Down)向下翻屏移动光标,CTR+U(UP)向上翻屏移动光标,命令前面还可以加数字表示翻屏多少行

CTR+F(Forward)与PageDown键,显示下一屏文本;CTR+B(Backward)与PageUp显示上一屏改文本。

G(Globalize)命令将光标移动到指定行号,例如1G,移动到文本第一行

3. 编辑模式

1 插入文本
在一般模式下,按”I、i、a或A”进行文本插入,其中i命令用于在光标之前插入文本内容,I表示在行开始插入,a表示在光标之后插入,A则表示在行尾插入。

(I在这插入)Downloa(i在这插入)【光标在这】(a在这插入)ding(A在这插入)

2 新行输入

o表示在当行下的下方创建一个新行,O表示在当前行的上方打开一个新行

//O在光标所在行的上方插入新行
【光标在这】Downloading
//o在光标所在行的下方插入新行

3 文本替换
命令r替换单个字符,替换完成后直接返回一般模式,命令R则连接已经文本替换,手动按ESC鍵后返回一般模式

4. 修改文本

在一般模式下进行文本的修改
1 撤消修改

u撤消上一次修改

//修改前
Downloading
//修改后
DWDDDDDDDD
//在一般模式下,按u后
Downloading

U连续执行可以执行若干次撤消

2 删除字符

x删除光标右边的字符,每次删除一个,如果指定3x,则每次删除三个
X删除光标左边的字符,每次删除一个,如果指定3X,则每次删除三个

3 批量删除
常用删除命令有:
dd命令删除一行
dl删除字符,与x命令相同
d0从行首开始删除,到光标处为止
d^从行首第一个字符开始删除,到光标处为止
dw从当前光标处开始,删除到word的末尾
d3w从当前光标处开始,删除到第三个字符的末尾
d)从当前光标开始,删除到句子的末尾
d}从当前光标开始,删除到段落的末尾
d(从当前光标开始,删除到句子的开头
d{从当前光标开始,删除到段落的开头
D从当前光标开始,删除到行的末尾
d$与D等同

4 批量修改

常用命令:
cl修改当前字符
cw从光标处开始,修改到字的末尾
cb从word开始处修改,直到光标处
c)从当前光标开始,修改到句子的末尾
c}从当前光标开始,修改到段落的末尾
c(从当前光标开始,修改到句子的开头
c{从当前光标开始,修改到段落的开头
C从当前光标开始,修改到行的末尾
cc修改当前行
ncc修改从当前行开始的n行

5 文本替换

s 先删除当前字符,再输入替换字符
S 先删除当前行,再输入替换字符作为当前行

6 大小写转换
~ 如果字符是大写,则自动转换成小写,如果是小写,则自动转换成大写

添加公众微信号,可以了解更多最新Spark、Scala相关技术资讯

时间: 2024-10-31 14:47:05

Spark修炼之道(基础篇)——Linux大数据开发基础:第五节:vi、vim编辑器(一)的相关文章

Spark修炼之道(基础篇)——Linux大数据开发基础:第一节、Linux介绍、安装及使用初步

本节主要内容 Linux简史 Linux系统整体介绍 Ubuntu Linux安装 Linux使用初步 1. Linux简史 要讲述大名鼎鼎的Linux,必然要先从UNIX系统谈起,下面这幅图给出了Unix系统的进化图: 图片来源:http://baike.baidu.com/link?url=QfoqWtWGs-BjpnfEy_AUk7Bm3XHuf6JbN92HCOoUBfFfj8BuSDkbwmldtmUEmGRDUwqsQMIV4jCKHvdkSPr3Lq 从进化图中可以看到,目前所有的

Spark修炼之道(基础篇)——Linux大数据开发基础:第四节:Linux文件系统(二)

本节主要内容 访问控制列表ACL 链接 压缩和归档文件 其他日常管理实用程序 1. 访问控制列表ACL 在实际使用使用过程中,可能linux系统自身权限控制不能满足要求,还需要进一步细化,此时可以用ACL( Access Control List )进行,它主要提供 owner,group,others 的 read,write,execute 权限之外的细部权限配置.它可以针对单一使用者,单一文件或目录来进行 r,w,x 的权限规范,对于需要特殊权限的使用状况非常有帮助. Ubuntu操作系统

Spark修炼之道(基础篇)——Linux大数据开发基础:第二节:Linux文件系统、目录(一)

本节主要内容 如何获取帮助文档 Linux文件系统简介 目录操作 访问权限 1. 如何获取帮助文档 在实际工作过程当中,经常会忘记命令的使用方式,例如ls命令后面可以跟哪些参数,此时可以使用man命令来查看其使用方式,例如 //man命令获取命令帮助手册 xtwy@ubuntu:~$ man ls 可以使用键盘上的 来显示下一行或上一行命令,也可以使用 进行上一页或下一页(屏)命令的查看,另外 空格鍵也可以用来显示下一屏的命令.想退出命令查看,直接按q鍵退出即可,也可以h鍵显示less命令列表(

Spark修炼之道(基础篇)——Linux大数据开发基础:第六节:vi、vim编辑器(二)

本节主要内容 缓冲区的使用 文件的存盘与读盘 文本查找 文本替换 作者:周志湖 微信号:zhouzhihubeyond 网名:摇摆少年梦 1. 缓冲区的使用 在利用vim进行文本编辑时,编辑修改后的文本不会立即保存到硬盘上,而是保存在缓冲区中,如果没有把缓冲区里的文件存盘,原始文件不会被更改.vim在打开文件时将文本内容读到缓冲区中,在进行文本编辑时,修改的文本保存在缓冲区,此时硬盘上的原文件不变.下面让我们来演示一下缓冲区的使用. 假设采用vim 同时打开两个文本文件: root@ubuntu

Spark修炼之道(基础篇)——Linux大数据开发基础:第三节:用户和组

本节主要内容 理解用户和组的概念 用户管理 组管理 权限分配 1. 理解用户和组的概念 在第一讲中我们提到,linux是一种多任务.多用户的操作系统,在讲ls -l命令行我们看到如下文件详细信息: root@ubuntu:/home/xtwy# ls -l total 48 drwxr-xr-x 2 xtwy xtwy 4096 2015-08-20 23:31 Desktop drwxr-xr-x 2 xtwy xtwy 4096 2015-08-20 23:31 Documents drwx

Spark修炼之道(基础篇)——Linux大数据开发基础:第七节:进程管理

本节主要内容 进程管理简介 进程管理常用命令 计划任务 1. 进程管理简介 (1)进程概念 进程是操作系统中非常重要的一个概念,进程是程序的执行过程,相对于程序,进程是动态的,在linux系统中,它与用户权限相关,程序与进程并没有一一对应,一个程序可能对应多个进程,例如: //ps命令列出当前所有对应当前用户的活动进程 xtwy@ubuntu:~$ ps PID TTY TIME CMD 2087 pts/0 00:00:00 bash 2105 pts/0 00:00:00 ps xtwy@u

Spark修炼之道(基础篇)——Linux大数据开发基础:第八节:网络管理

本节主要内容 ifconfig命令 网络配置 其它常用网络管理命令 1. ifconfig命令 ifconfig命令主要用于配置网络接口,如果不加任何参数,则ifconfig命令用于查看当前所有活动网络接口的状态信息,例如: 图中的eth0表示活动的以太网接口,对应的描述信息中给出了网络的整体状况信息包括网络类型.MAC地址.IP地址.子网掩码等等,lo表示本地环回网络地址.从图中可以看到,所有的网络类型都是inet即基于TCP/IP协议的网络. 目前支持的主流协议包括: inet (TCP/I

Spark修炼之道(基础篇)——Linux大数据开发基础:第九节:Shell编程入门(一)

本节主要内容 shell编程简介 变量定义 常用特殊变量 1. shell编程简介 学习linux操作系统最让人着迷的事情莫过于shell脚本编程,这是因为如果要完成某些复杂的功能,单纯地通过GUI操作不可能达到,shell脚本可以直接与操作系统内核打交道,从而完成任意复杂的任务.shell有很多种,最常用的是Bash (Bourne Again Shell),它是Linux操作系统默认的shell环境. 在linux环境中,需要区分一下root用户与一般用户的命令行显示: //root用户与一

Spark修炼之道(基础篇)——Linux大数据开发基础:第十四节:Shell编程入门(六)

本文主要内容 case控制结构 read命令 管道 1. case控制结构 参考:http://blog.csdn.net/dreamtdp/article/details/8048720 case控制结构语法格式: case expression in pattern1 ) statements ;; pattern2 ) statements ;; ... esac case控制结构较之于if条件判断,代码可读性更强,典型的应用场景是:编写的shell Script可能会跨越好几种平台,如L