Linux 系统中“一切皆文件”,因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器。
一 、 vim命令基本格式
vim [选项]... 文件名...
- vim 文件名不存在 是新建文件
- vim 文件名存在 是修改查看文件
如果系统最小化安装vim并没有提前安装,可以使用yum进行安装
yum install vim -y
最小桌面
二 、常用选项
| 选项 | 效果 |
|---|---|
| vim +10 | 光标默认在第10行 |
| vim +# | 打开文件后,让光标处于第#行的行首,+默认行尾 |
| !vim | 打开上次打开的文件 |
| vim +/PATTERN | 让光标处于第一个被PATTERN匹配到的行行首 |
退出vim:按esc 英文冒号 wq (q!强制退出)
三 、 vim编辑器三种模式
- 命令模式:进去时默认的模式(光标移动、复制、删除、粘贴、其他操作)
- 输入模式:在命令模式按i键可以进入输入模式,作用:书写,编辑你的文件
- 末行模式:命令模式下按冒号,作用:保存、查找替换、设置默认的参数等
1. 命令模式下的基本操作
命令模式:此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行 等操作。
| 操作类型 | 快捷键 | 效果 |
|---|---|---|
| 行间移动 | G | 最后一行 |
| 数字G | 跳转到数字行 | |
| gg | 第一行 | |
| 单词间跳转 | w | 单词间跳转 |
| 5 w | 跳过5个单词 | |
| 复制命令 | y | 复制 |
| yy | 复制一行 | |
| yw | 复制一个单词 | |
| 10 yy | 复制10行 | |
| 粘贴命令 | p (小写) | 在光标下一行粘贴 |
| P (大写) | 在光标上一行粘贴 | |
| 撤销更改 | u | 撤回 |
| ctrl + r | 撤回撤回 | |
| 删除命令 | dd | 剪切,删除 |
| 10 dd | 剪切10行 | |
| dw | 剪切一个单词 单词只能贴在当前,不能换行 | |
| x | 剪切一个字符 | |
| 行首行尾跳转 | ^ | 跳转到行首 第一个字符 |
| 0 | 跳转到行首 真正的行首 | |
| $ | 跳转到行尾 | |
| end | 跳转到行尾 | |
| 替换 | r | 替换单个字符 |
| R | 替换模式,可以一直替换 | |
| 字符编辑 | ~ | 大小写转换 |
| J | 删除当前行后的换行符,合并两行 | |
| ZZ | 保存退出 | |
| d i { } | {之间的内容就会删除} “ “ 和 [ ] 同理 |
2. 输入模式的快捷键
输入模式: 使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令,当完成后按 Esc 键即可返回命令模式。
| 快捷键 | 效果 |
|---|---|
| i | 光标当前处插入 |
| o | 在光标下一行插入 |
| a | 在当前光标所在位置之后插入随后输入的文本 |
| l | 行首插入命令 |
| O | 在光标所在行的上面插入新的一行 |
| A | 行尾插入命令 |
着重记忆前i 和o
3. 末行模式的快捷键
末行模式:文件中的指定内容执行等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”(英文冒号)键,此时 Vim 窗口的左下方出现一个“:”符号,这时就可以输入相关指令进行操作了。
| 快捷键 | 效果 |
|---|---|
| ! | 强制 |
| q | 退出 |
| w | 保存 ( vim 不保存 对源文件的修改不生效 ) |
| w 新文件名 | 另存为新文件 |
| / 关键字 | 查找关键字 区分大小写 |
| set list | 显示隐藏字符 |
| r 其他文件名 | 在当前文件中读入其他文件内容 |
| nohl | 取消高亮 |
| set nu | 显示行号 set nonu 不显示行号 |
| set cul | 光标所在行有下划线 set nocul 取消下划线 |
| set ai | 自动缩进对齐 回车后和上一行对齐 |
| set all | 可以看所有的一些帮助 |
| set key=password | 设置密码 |
| set key=空白 | 取消密码 |
| set tabstop=4 (set ts=4) | tab 一次为四个空格 |
| set paste | 复制保留格式 |
着重记忆前6个
可视化模式 (不常用,且不实用)
输入ctrl+v 进入可视化模式
在末行有”-- VISUAL -- “指示,表示在可视化模式
- v 面向字符,-- VISUAL --
- V 面向整行,-- VISUAL LINE --
- ctrl-v 面向块,-- VISUAL BLOCK --
四 、 配置文件定制vim的工作特性
之前的一些快捷操作只是临时显示行号,要想永久显示行号怎么做?
Vim 启动时,会根据配置文件(.vimrc)来设置 Vim,因此我们可以通过此文件来定制适合自己的 Vim。
/etc/.vimrc #全局
~/.vimrc #个人
Vim 配置文件分为系统配置文件和用户配置文件:
- 系统配置文件位于 Vim 的安装目录(默认路径为 /etc/.vimrc);
- 用户配置文件位于主目录 ~/.vimrc,即通过执行
vim ~/.vimrc命令即可对此配置文件进行合理修改。通常情况下,Vim 用户配置文件需要自己手动创建。
| 设置参数 | 功能描述 |
|---|---|
| set nu | 显示行号 |
| set cul | 突出显示当前行。 |
| set ai | 设置自动缩进,即每行的缩进同上一节相同。 |
| set ts=4 | 设置 Tab 键宽度为 4 个空格。 |
五 、 末行模式下的 !!!
通式 : 范围 s /旧字符/新字符/修饰符
| 范围 | 效果 |
|---|---|
| 不写 | 默认处理光标所在行 |
| % | 全文 |
| $ | 最后一行 |
| $-1 | 倒数第二行 |
| n | n代表数字 第n行 |
| 3,10 | 3到10行 |
| . | 当前行 |
| 2, +3 | 2到5行 , 2往后加3行 |
s/// 或 s@@@ 或 s###
旧字符可以使用正则表达式 进行匹配表示;新字符必须是确定的字符
| 修饰符 | 效果 |
|---|---|
| g | 全局替换 (最常用) |
| i | 忽略大小写 |
| c | 替换前询问是否需要替换 |
```举例
把root全部替换为admin : s/root/admin/g
在所有行开头加上# : % s/^/#/
把开头所有的#去掉 : % s/^#/ /