一、vi和vim,傻傻分不清楚??
Linux 系统中“一切皆文件”,因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器。linux中常见的 文本 还有 nano gedit 知道
推荐使用 Vi 文本编辑器的原因有很多,比如说:
-
几乎所有的Linux 发行版都内嵌有 Vim 文本编辑器,而其他的编辑器则不一定存在;
-
Vim具有编辑程序的能力,会主动利用不同的字体颜色辨别语法的正确性,方便程序设计 接口
vi与vim之间的区别 :vim是vi的升级版
如果发现vim没有安装,不要忘了还有vi ,基本操作一样的;或者yum install vim -y安装一下
二、vim编辑器有4种模式:
命令模式(默认模式):可以实现移动光标,剪切/粘贴文本
插入模式(编辑模式):用于修改文本
末行模式:保存,退出,搜索替代,还有很多查看习惯设置等等
视图模式:用的少
三、常用的三种模式切换方法
四、命令模式(默认模式)学习
退出vim | |
ZZ | 在命令模式下直接保存退出 |
ZQ | 在命令模式下不保存退出 |
光标跳转 | |
h | 左 |
l | 右 |
j | 下 |
k | 上 |
单词跳转 | |
w | 下一个单词的开头,2w多个单词间跳转 |
e | 下一个单词的结尾,3e多个单词间跳转 |
行首行位跳转 | |
^ | 跳转至光标所在行首(非空白字符) |
0 | 跳转至光标所在行首 |
$ | 跳转至光标所在行尾 |
行间跳转 | |
大写的G | 跳转至某一行,数字G,如100G |
gg | 直接到开头 |
单独一个G | 到最后一行 |
字符操作 | |
x | 删除光标的字符 |
r | 单个字符替换,rw,也可以替换一个单词 |
R | 多个字符替换 |
删除 | |
dd | 删除光标所在行 |
数字dd | 删除光标在内往下的一共几行,如2dd |
d$ | 删除光标到行尾,等同于D |
d^ | 删除光标到行首 |
d数字w | 删除从当前位置几个单词 |
复制(跟dd的逻辑一样的) | |
yy | |
粘贴 | |
p小写 | 从当前光标的下方粘贴 |
P大写 | 从当前光标的上方粘贴 |
查找 | |
/查找内容 | 从光标所在处往下查找 |
?查找内容 | 从光标所在处往上查找 |
撤销 | |
u | 撤销一次 |
U | 撤销一行修改 |
Ctrl r | 撤销撤销 |
匹配 | |
%(在配对符位置使用%) | 会将光标移动到配对的括号上 |
删除配对符号的内容 | |
di(或者di{ | 可以删除配对符号内的内容,留下配对符 |
五、插入模式(编辑模式)
插入方式 | |
小写i | 光标所在位置前面插入 |
大写I | 行首插入 |
小写o | 光标的下一行插入 |
大写O | 光标的上一行插入 |
小写a | 光标所在位置后面插入 |
大写A | 行尾插入 |
六、末行模式(功能比较多,准备好记笔记了)
!!可以对文本内容进行保存、个性化设置格式、文本查找和替换、在vim编辑下执行命令!!
第一种保存和个性化设置
退出 | |
:wq! | 保存强制退出 |
:q! | 不保存强制退出 |
:q | 不保存直接退出 |
个性化设置 | |
:set nu | 显示行号 |
:set ai | 自动缩进 |
:set ts=4 | tab用指定空格的个数代替 |
:set cul | 设置光标所在行的标识线 |
:set key= | 加密 |
第二种,查找替换
语法 : [范围] s/旧内容/新内容/修饰符
查找替换语法 | |
:[范围] s/旧内容/新内容/修饰符 | |
:% | 表示对全文操作,不加默认是当前光标这一行 |
:#,# | 从哪一行到哪一行 |
:#,+# | 从哪一行开始数,一共几行 :3,+3表示第3、4、5行 |
:/pattern/,/pattern/ | 正则表达式表示从哪行到哪行 |
:修饰符g | 表示全局,所有更改,不加则是默认改匹配的第一个 |
第三种,如果想删除空行
方法一::g/^$/d
方法二: :% s/^\n
第四种,在vim编辑器中执行外部命令
执行外部命令 | |
:!命令 | 执行命令 |
:w 文件名 | 把修改结果另存为新文件 |
:r 文件名 | 把文件内容叠加写入当前光标下面 |
:r !命令 | 把执行命令写入当前光标下面 |
这是官方文件操作给的总结
一个实验:
七、题目测试,你学会了嘛?
1、将所有的80换成9527
:% s/80/9527/g
2、在前5行行开头添加#号
:1,5 s/^/#/
3、把/bin/bash 换成admin
:% s#/bin/bash#admin#g