一、vi编辑器
(1)为什么学vi?
- 所有的Unix Like 系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在;
- 很多个别软件的编辑接口都会主动呼叫 vi (例如未来会谈到的 crontab, visudo, edquota 等指令);
- vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计;
- 程序简单,编辑速度相当快速。
Vim的发布最早可以追溯到1991年,英文全称为:“Vi IMproved”,也就是对vi编辑器的提升版本,其中最大的改进当属对代码的着色功能,亦有些编程场景能够自动修正错误代码。
在Linux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数。在日常工作中大家也肯定免不了要编写文档,这些工作都是通过文本编辑器来完成的。Vim之所以能得到广大厂商与用户的认可,原因在于Vim编辑器中设置了三种模式:命令模式、末行模式和编辑模式(插入模式),每种模式别又支持多种不同的命令快捷键,这大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手。
(2)使用vi/vim编辑文件
#在每次运行Vim编辑器时,默认进入命令模式
[root@master ~]# vim /etc/passwd 也可以就输入一个 vim,也是默认进入命令模式
[root@master ~]# vim
1、vim三种模式的切换
特点区分(都是看最后一行底部):
- 命令模式:没有任何信息或显示文件名和相关信息
- 插入模式:最后一行显示 insert
- 末行模式:最后一行显示 :
2、命令模式下的常用按键
(1)光标跳转按键
(2)复制、粘贴、删除
补充:
d + enter | 删除光标所在行以及光标下一行 |
x | 删除光标所在字符 |
Ndd(例:3,5dd) | 删除光标行开始3-5行内容 |
dG | 删除光标所在行到文档尾 |
dgg | 删除光标所在行到文档首 |
s | 字符替换,替换光标所在字符 |
cc | 剪切光标所在行 |
ctrl + r | 向右撤销 |
命令模式进入插入模式的方式
按esc键可从编辑模式切换到命令模式
命令模式进入插入模式的方式
按 : 或者 / 可从命令模式切换到末行模式。按esc键可从末行模式切换到命令模式。
3、末行模式
(1)查找关键字并替换
(2)保存退出
(3)其他操作
补充:
取消高亮显示 | :noh |
跳转到第5行 | :5 |
将所有行的0字符替换出2 | : s/0/2/g |
4、vim的拓展用法
(1)可视化模式
按Ctrl+v进入可视化模式
该模式下通过光标移动选择文本,选取后按 y 可以把文本提取到缓冲区(即复制),c 可以剪切。之后可以使用p在光标后粘贴,P粘贴在光标前
(2)多文档编辑
在打开一个文件的时候,输入 :sp /dir/file 可分屏显示另一个文件
光标在多个文件之间的切换按ctrl+w w
5、vim的配置文件
[root@master test]#vim /etc/vimrc
[root@master test]#vim ~/.vimrc
set hlsearch "高亮度反白
set backspace=2 "可随时用退格键删除
set autoindent "自动缩排
set tabstop=4 "缩进
set softtabstop=4 softtabstop是“逢4空格进1制表符”,前提是你tabstop=4
set shiftwidth=4 自动缩进空格长度
set mouse=a "使用鼠标
set selection=exclusive
set selectmode=mouse,key
set ruler "可显示最后一行的状态
set showmode "左下角那一行的状态
set nu "可以在每一行的最前面显示行号啦!
set bg=dark "显示不同的底色色调
syntax on "进行语法检验,颜色显示
6、vim练习
(1)修改主机名
[root@localhost ~]# vim /etc/hostname
(2)设置登录欢迎语
[root@localhost ~]# vi /etc/motd
hello
(3)修改中断当前进程的快捷键
[root@localhost ~]# vi ~/.bashrc
stty intr "^b"
#中断当前进程的快捷键就会变成ctrl+b