linux. shell分屏,19_Shell语言———VIM编辑器基础知识二之编辑命令、可视化、翻屏、分屏和文本搜索功能...

一、编辑命令

vim编辑器具有强大的编辑功能,使用一些特定的命令,可以实现对文本的查找、替换、删除等等功能。主要命令有:

x:删除光标所在处的单个字符

#x:删除光标所在处向右的#个字符

d:删除命令,通常和单词跳转的命令结合使用:

dw:往后删一个单词

db:往前删一个单词

dd:删除光标所在行

de:删除光标所在处至词尾

#dd:删除光标所在行及向下#行

d^:删除光标所在处到行首的所有非空白字符

d$:删除光标所在处到行尾的所有非空白字符

如果是在末行模式下使用d命令,会有更加有趣的效果,因为末行模式支持地址定界,即指定特殊位置,其使用模式为:

起始地址,结束地址d

通常情况下地址表示符有以下几种:

.: 当前光标所在行

$: 最后一行

%:全文

如:

1,7d//删除第一行至第七行

%d//删除全文

1,$d//删除第一行至最后一行

1,+6d//删除第一行到第6行

1,$-2d//删除第一行至倒数第三行

.,+3d//删除当前光标所在行至下数3行(共4行)

p:在当前光标所在行的下方粘贴,它可以粘贴此前删除的内容(类似于剪切命令)

P:在当前光标所在行的上方粘贴

如果之前删除的不是整行,则p在当前光标所在字符的后方粘贴;P在当前光标所在字符的前方粘贴;

c59353e2ab98bed293fcd3c926bb3d2e.png

只要没有使用wq命令保存文件,所有的编辑命令是可以撤销的,使用u命令,表示undo。默认情况下vim会保存最近50次的操作,故u命令可以撤销最近50次的操作。如果撤销了之后又想反撤销(即撤销此前的撤销操作),可以使用Ctrl+r命令。

y:复制,此命令和删除相似,通常也和跳转命令结合使用:

yy:复制一行

#yy:复制#行

y$:复制光标到行尾

^y:复制光标到行首

使用了y命令后就可以使用p命令来进行粘贴,其用法和上述p命令一致。

c:融合了编辑和转换到输入模式两种功能。

按照前文所述,如果要删除某一行,然后在删除的位置插入一行新的内容,可以先使用dd命令,然后使用O命令,就可以输入内容了。但直接输入两次c命令同样可以完成这样的功能;

如果要删除光标处到行尾的内容,然后转换为输入模式,此前使用的是d+$,然后输入a命令。而使用c+$命令,也能实现此功能。

c命令也可以和跳转命令一起使用,如:

#cc:删除#行并转换为输入模式

二、vim的可视化模式(visual)

在Windows的文本编辑器中,我们可以使用光标选中任意文本来进行操作;事实上在vim中,同样可以使用可视化模式来选择任意文本。这两个命令可以进入可视化模式:

v:选中光标滑过的字符

V:整行选取,选中光标滑过的行

f3be6d167a4f42d36ab35598f0c9e92a.png

连按两次Esc键,可以从可视化模式回到编辑模式

在可视化模式下选中文本,可以结合c,y,d等命令来修改、复制、粘贴、删除文本,可视化模式对大篇文档的操作非常有效。

三、翻屏操作

之前使用man查看命令帮助时,用b或者空格键来控制翻屏操作,而在vim编辑器中,同样也需要进行翻屏操作,其主要命令有:

Ctrl+f:向文件尾部翻一屏

Ctrl+b:向文件首部翻一屏

Ctrl+d:向文件尾部翻半屏

Ctrl+u:向文件首部翻半屏

↑,k:光标向上移动一行

↓,j,回车:光标向下移动一行

四、分屏操作

在window的word工具里,可以使用分屏的方式来操作文档,即通过窗口—>拆分来拆分某页文档,这样可以将一个文档显示为两屏。事实上,vim也支持这种操作。注意,这里是在同一个文件中进行操作,而不是像上一章节中操作多个文件,其使用方法为:

Ctrl+w,然后按下s键:水平分割

Ctrl+w,然后按下↑↓方向键:在上下两屏中跳转

Ctrl+w,然后按下v键:垂直分割

Ctrl+w,然后按下→←方向键:在左右两屏中跳转

25c7e97a7f506256560267471e9cd966.png

按Esc键进入末行模式,输入q即可退出分屏显示状态

五、文本搜素功能(末行模式下)

和less命令相似,vim编辑器中也可以使用文本搜索功能,其使用方法为:

/keyword:从当前光标所在处向文件尾部搜索keyword

按下回车键后按:

n:下一个 (同查找方向相同)

N:上一个 (同查找方向相反)

?keyword:从当前光标所在处向文件首部搜索keyword

按下回车后按:

n:上一个

N:下一个

2d4e4126a01614ccd5e4a26282283346.png

在vim编辑器中搜索可以使用模式匹配,即采用正则表达式进行定制搜索。

例如,要查找文件中以d开头,以n结尾,中间含有任意两个字母的字符串,可以输入:

/d[[:alpha:]]\{2\}n进行搜索

169d5808d9ca94882d18c615be20d245.png

上述匹配没有进行精确锚定,如果要精确锚定,可以使用\/

这里顺便复习一下正则表达式的元字符

基本的正则表达式元字符:

.:任意单个字符

[]:指定范围的单个字符

[^]:指定范围外的单个字符

*:匹配其前的字符任意次

\?:匹配其前的字符0次到1次

\{m,n\}:匹配其前的字符至少m次,至多n次

\{m\}:精确匹配字符m次

^:锚定行首

$:锚定行尾

\

\>:锚定词尾

\(\), \1, \2:分组,在后方引用前面匹配到的字符

扩展的正则表达式元字符有:

.;[];[^];*;?;^;$;\和基本正则表达式元字符一致;

+:1次以上

{m,n}:注意没有反斜线了,至少m次,至多n次

{m}:精确匹配m次

a|b|c:a或b或c

():支持分组,但没有反斜线了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值