Week2-----vim编辑器

1.Vim的介绍

vim拥有 5 种编辑模式:命令模式、输入模式、末行模式、可视化
模式、查询模式。
1).命令模式(其它模式→ESC)
2).输入模式(命令模式→a、i、o、A、I、O)
3).末行模式(命令模式→:)
4).可视化模式(命令模式→v)
5).查询模式(命令模式→?、/)
Vim是从 vi 发展出来的一个文本编辑器,处理文本文件功能强大。
三种主要模式:
Vim打开文件,默认命令(Normal)模式,可以移动光标,剪切和粘贴。
按键i 进入插入(Insert)模式,用户可以编辑文本。
末行模式用户:wq可保存退出,或者:q!强制退出。
Exc按键可退出当前模式。

2、文本操作

vim 打开文本文件
vim +# :打开文件,并定位于第#行
vim +/PATTERN : 打开文件,定位至第一次被匹配到的关键行的行首
移动光标(编辑模式)
单个移动: h: 左, l: 右, j: 下, k: 上。
#h: 移动#个字符
w: 移至下一个单词的词首
行内跳转:0: 绝对行首 $: 绝对行尾 ^: 跳转至行首的第一个非空白字符
句间移动:):下一句(:上一句
段落间移动:}:下一段{:上一段
在整个文件里面移动光标
:向下移动一屏。:向下移动半屏。
:向上移动一屏。:向上移动半屏。
G:到文件尾
#G:移动光标到指定的行
gg:到文件首
搜索
/字符串:从当前光标处开始搜索字符串 word,按 n移动到下个单词处,N 移动到上一个。
?word:和上面类似,但是是反方向。
编辑文本
插入模式
i:在当前字符的左边插入
I:在当前行首插入
a:在当前字符的右边插入
A:在当前行尾插入
o:在当前行下面插入一个新行
O:在当前行上面插入一个新行
删除单个字符
x: 删除光标所在处的单个字符
#x: 删除光标所在处及向后的共#个字符
删除命令:

d$: 删除到行尾
d^:删除到非空行首
d0:删除到行首
dd: 删除当前光标所在行
#dd: 删除包括当前光标所在行在内的#行;
剪切和拷贝
y:拷贝选择的内容到剪贴板。
c:剪贴选择的内容到剪贴板并且进入插入模式。
yy:拷贝当前行。
cc:剪切当前行并且进入插入模式。
D:剪切从光标位置到行尾到剪贴板。
Y:拷贝当前行。
C:和 D 类似,最后进入插入模式。
x:剪切当前字符到剪贴板。
p:粘贴
撤销改变
u:撤消前一次的编辑操作
连续u命令可撤消此前的n次编辑操作
#u: 直接撤消最近#次编辑操作
撤消最近一次撤消操作:Ctrl+r
多文件编辑
vim FILE1 FILE2 FILE3 …
:next 下一个
:prev前一个
:first 第一个
:last 最后一个
:wall 保存所有
:qall退出所有
:wqall
多文件分割
vim -o|-O FILE1 FILE2 …
-o: 水平分割
-O: 垂直分割
在窗口间切换:Ctrl+w, Arrow
单文件窗口分割:
Ctrl+w,s: split, 水平分割
Ctrl+w,v: vertical, 垂直分割
ctrl+w,q:取消相邻窗口
ctrl+w,o:取消全部窗口
:wqall退出
编辑命令
将当前文件中部分内容另存为另外一个文件
末行模式下使用w命令
:w
:ADDR1,ADDR2w /path/to/somewhere
将另外一个文件的内容填充在当前文件中
:r /path/to/somefile
练习:

  1. %s@^[[:space:]]\+@@            将行首的空格键用@@替换
    

在这里插入图片描述
执行命令后
在这里插入图片描述
2.%s@[[:space:]]+[[:space:]]@#&@g 的每个以空白字符开头的行的行首加上#
在这里插入图片描述
使用命令后
在这里插入图片描述
3.
%s@(enabled|gpgcheck)=0@\1=1@g 将文件中所有的enabled=0 替换为 enabled=1,所有 gpgcheck=0 替换gpgcheck=1

在这里插入图片描述
修改后
在这里插入图片描述
2. 写出下列要求要执行的命令,如果是在末行模式下执行,需写出
“:”号,注意大小写。
1)、向后搜索字符串 stream /stream
在这里插入图片描述在这里插入图片描述
2)、向前搜索字符串 sbin ?sbin
在这里插入图片描述

3)、复制 10 行然后粘贴 10yy p
在这里插入图片描述
4)、将光标移到第 18行 18G
在这里插入图片描述
5)、将光标移到最末行 G
6)、删除共 5 行 5dd
在这里插入图片描述

在这里插入图片描述

7)、恢复前一步的操作 u
8)、将光标移到行首 0 或者^
9)、将光标移到行尾 $
10)、将从第 10 行到第 50 行的内容写入/back/file1
:10,50w /back/file1
在这里插入图片描述
11)、将从当前行开始,总共 20 行的内容存入/back/file2 :.,+19w
/back/file2
12)、读取/etc/conf/hello.txt 文件的内容插入当前行后面 :r

在这里插入图片描述
13)、替换第 20 行到第 30 行中的所有 sbin 为 sbin1
:20,30s /sbin/sbin1/g
在这里插入图片描述
14)、替换文中全部的 root 为 admin :% s/root/admin/g

在这里插入图片描述
修改全局sbin为root
在这里插入图片描述
15)、在每一行的行首插入字符串 new : % s/^/new/g
在这里插入图片描述
16)、在第 10 行到第 50 行的行尾插入字符串 new
:10,50s/$/new/g
在这里插入图片描述
17)、让 vi 显示每一行的行号 set nu

猜你喜欢

转载自blog.csdn.net/woaizxy123/article/details/83011769