文章目录
一、vi编辑器
Linux 系统中“一切皆文件”,因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器。
linux中常见的 文本 还有 nano gedit
使用 Vi 文本编辑器的原因有很多:
- 几乎所有的Linux 发行版都内嵌有 Vim 文本编辑器,而其他的编辑器则不一定存在;
- Vim具有编辑程序的能力,会主动利用不同的字体颜色辨别语法的正确性,方便程序设计接口。
vi与vim之间的区别
vim是vi的升级版
基本格式:
vim 选项 文件
vim 文件名不存在 是新建
vim 文件名存在 是修改
系统最小化安装vim命令:
yum install vim -y
常用选项:
- +# 打开文件后,让光标处于第#行的行首,+默认行尾
- ! 打开上一次的文件
二、三种常见模式
1.命令模式:进入时默认的模式 光标的移动,复制,删除,粘贴
2.编辑模式/输入模式:在命令模式 按i键可以进入输入模式,编辑我的文件
3.末行模式:保存,查找替换,设置默认的参数等
另外两种模式:
替换模式:r替换一次,R一直替换
可视化模式:按v进入,按字符来选择文本
三、命令模式
命令 | 含义 |
---|---|
数字+G | 跳转到数字行 |
G | 最后一行 |
gg | 第一行 |
w | 单词间跳转 |
5w | 跳过5个单词 |
y | 复制 |
yy | 复制一行 |
yw | 复制一个单词 |
10yy | 复制10行 |
P(大写) | 在光标下一行粘贴 |
p(小写) | 在光标上一行粘贴 |
u | 撤回操作 |
U(大写) | 取消之前所有操作 |
Ctrl+r | 取消撤回 |
dd | 剪切 |
10dd | 剪切10行 |
dw | 剪切一个单词 |
zz | 保存退出 |
^ | 跳转到行首(跳转到有字母的行首) |
0 | 跳转到行首(跳转到真正的行首) |
$ | 跳转到行尾 |
end | 跳转到行尾 |
x | 剪切一个字符 |
10x | 剪切10个字符 |
~ | 转换大小写 |
J(大写) | 删除当前行后的换行符 |
r | 只替换光标所在处的一个字符 |
/字符 | 向下查找 |
?字符 | 向上查找 |
set list | 显示隐藏字符 |
重点:G、yy、dd、p、u命令
四、输入模式
输入模式: 使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令(各指令的具体功能如表 3 所示),当编辑文件完成后按 Esc 键即可返回命令模式。
切换到输入模式
快捷键 | 功能描述 |
---|---|
i | 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动 |
I | 行首插入命令 |
o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 |
O | 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 |
a | 在当前光标所在位置之后插入随后输入的文本 |
A | 行尾插入命令 |
五、末行模式
末行模式:文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”(英文冒号)键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。
快捷键 | 功能效果 |
---|---|
:q | 退出不保存 |
:q! | 强制退出不保存 |
:w | 保存 |
:w 新文件名 | 另存为新文件: |
:wq :zz :x | 保存并退出(一般建议用wq) |
:e 其他文件名(如果已修改需要加e!) | 打开新文件进行编辑 |
:r 其他文件名 | 在当前文件中读入其他文件内容 |
!命令 | 执行命令 |
:r!命令 | 读入命令 |
# d | 删除 第#行 |
#,# d | 删除#到#行 |
#,# y | 复制三到6 行 |
:set nu 或:set nonu | 加行号 不显示行号 |
:set cul (:set nocul ) | 光标所在行有下划线(取消) |
no hl | 取消高亮 |
:set ai | 对齐 回车后和上一行对齐 |
:set all 可以看所有的一些帮助 | 可以看所有的一些帮助 |
set key=password | 加密码 |
set key=空白 | 取消密码 |
set tabstop=4 (set ts=4) | tab 一次为四个空格 |
.!命令 (who,date ) | 将date命令插入当前行注意会覆盖当前行 |
末行模式下的查找替换
通式:
范围 s /旧字符(可以用正则表达式)/新字符(不可以用正则表达式,换上去的字符要确定)/修饰符
s ///标准格式(还可以用@@@ 或###隔开)
范围:
命令 | 功能效果 |
---|---|
不写 | 默认处理光标所在行 |
% | 全文 |
$ | 最后一行 |
$-1 | 倒数第二行 |
n | 第几行 |
. ,10 | 当前行到第十行 |
3,10 | 3到10行 |
. | 当前行 |
修饰符:
命令 | 功能效果 |
---|---|
g | 全行替换 |
i | 忽略大小写 |
c | 类似于ok每次替换之前询问 |
例子:
把所有开头的#号去掉
% s/^#//
在所有行开头加上#号
% s/^/#/