Vim 操作模式

本文详细介绍了Vi/Vim编辑器的三种基本模式:命令模式、输入模式和末行模式的操作方法。包括如何在不同模式间切换、常用编辑命令如复制、删除、替换等,以及如何使用正则表达式进行全局替换。

一、命令模式

        vi启动后默认进入的是命令模式,从这个模式使用命令可以切换到另外两种模式,同时无论在任何模式下只要按一下[Esc]键都可以返回命令模式。

(1) Home光标到行首,End 光标到行尾
(2) Page UpPage Down上下翻页
(3) Delete删除光标位置的字符

(4) 删除光标处的单个字符,#x 例如 3x 删除光标处向右的三个字符
(5) dd 删除光标所在行,#dd 例如 3dd 从当前行开始向下删除三行文本
(6) dw 删除当前字符到单词尾包括空格的所有字符

(7) yy 命令复制当前整行的内容到vi缓冲区,#yy 例如:5yy 就是复制5行, y5j (复制光标下面6行),5jP(跳到5行后再黏贴)
(8) yw 复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词,#yw 例如:2yw 就是复制两个单词
(9) y^ 复制光标所在位置到行尾内容到缓存区
(10) y$ 复制光标所在位置到行首内容到缓存区
(11) 将光标移动到要复制的文本开始的地方,按 进入可视模式,将光标移动到要复制的文本的结束的地方,按 复制。此时vim会自动将光标定位到选中文本的开始的地方,并退出可视模式, 我移动光标到文本结束的地方,按 粘贴。

 

二、输入模式

        在命令模式中输入字幕“i”就可以进入vi的输入模式编辑文件。在这个模式中我们可以编辑、修改、输入等编辑工作,在编辑器最后一行显示一个“--INSERT--”标志着vi进入了输入模式。当我们完成修改输入等操作的时候我们需要保存文件,这时我们需要先返回命令模式,在进入末行模式保存。

 

三、末行模式

        在命令模式输入“”即可进入该模式,在末行模式中有好多好用的命令。

(1) 如果要复制第m行到第n行之间的内容,可以在末行模式中输入 m,ny 例如:3,5y复制第三行到第五行内容到缓存区。

(2) 替换,基本语法如下:

[addr]s/源字符串/目的字符串/[option]

全局替换的语法如下:

:%s/源字符串/目的字符串/g

其中[addr] 表示检索范围,省略时表示当前行

     如:“1,20”:表示从第1行到20行

            “%”:表示整个文件,同“1,$”

            “. ,$”:从当前行到文件尾

       s : 表示替换操作

      [option] : 表示操作类型

              g 表示全局替换

              c 表示进行确认

              p 表示替代结果逐行显示(Ctrl + L恢复屏幕)

省略option时仅对每行第一个匹配串进行替换,如果源字符串或目的字符串出现特殊字符,用”\”转义。

下面是替换示例:

a. 替换当前行的第一个符合old模式的字符串为new

:s/old/new/

b. 替换当前行所有符合old的字符串为new

:s/old/new/g

c. 替换所有行的第一个符合old模式的字符串为new

:%s/old/new/

d. 替换所有行所有符合old模式的字符串为new

:%s/old/new/g

e. 替换时再次确认替换

:%s/old/new/c

f. 模式替换

除了可以搜索常量字符串,vi编辑器还可以搜索可变的模式,即正则表达式

例如,删除所有空行

:g/^$/d

例如在每行的开始插入两个空白

:%s/^/  /g

 

四、其它

(1) 自上而下的查找 /,自下而上的查找 ?

(2) 使用鼠标拖动反选要粘贴的内容,按鼠标左键复制选定块到缓冲区,然后将光标移到要粘贴处,按鼠标中键(两键鼠标可同时按左右键),粘贴缓冲区内容
(3) 清空文件内容:首先使用gg调整光标到首行,然后使用dG命令即可

转载于:https://my.oschina.net/shou1156226/blog/860946

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值