- Linux平台下的文本编辑器: emacs、nano、gedit、vi、vim。
- vi(visual editor)编辑器通常被简称为vi,它是Linux和Unix系统上基本的文本编辑器,类似于Windows 系统下 的记事本。
- vi和vim区别:
vi :visual interface
vim:vi improved, vim
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。
一. vim三种模式及其功能介绍
1.命令行模式 :可以进行一些基本的复制、删除、跳转、撤销、移动等操作
2.编辑模式:编辑文件内容
3.尾行模式:①保存和退出 ②搜索替换 ③其他功能
二.使用vim工具打开文件
①环境准备
- 删除/tmp/目录里的所有内容
- 将/etc/passwd文件拷贝到/tmp目录里
# rm -rf /tmp/*
# cp /etc/passwd/ /tmp/
②使用vim工具打开文件
用法: vim [参数] [文件 …] 编辑指定的文件
- 例1:(光标指向首行首字母打开指定文件)
[root@192 ~]# vim /tmp/passwd
- 例2:(光标指向参数行首字母打开指定文件)
[root@192 ~]# vim +3 /tmp/passwd
三. vim三种模式常用命令
1.命令行模式
命令 | 含义 | 备注 |
---|---|---|
yy | 复制光标所在行 | 3yy表示复制3行,nyy表示复制n行 |
p | 在光标所在行的下行开始粘贴 | (记忆:小写在下) |
P | 在光标所在行的上行开始粘贴 | (记忆:大写在上) |
gg | 光标跳转到首行首字符 | ngg表示跳转到距离首行n行的位置 |
G | 光标跳转到尾行首字母 | |
^ (shift+6) | 跳转到光标所在行首字母 | (记忆:^表示头) |
# (shift+3) | 跳转到光标所在行尾字母 | (记忆:$表示尾巴) |
dd或者D | 删除光标所在行 | |
d^ | 从光标位置删除至行首(不含光标) | (记忆:d表示delete,^ 表示头,d^即表示删除到头) |
d$ | 从光标位置删除至行尾巴(含光标) | (记忆:d表示delete,^ 表示尾,d^即表示删除到尾) |
dgg | 删除光标所在行以上所有行 | (记忆:d表示delete,gg表示定位到首行首字母,即dgg表示删除到首行) |
dG | 删除光标所在行以下所有行 | (记忆:d表示delete,G表示定位到尾行首字母,即dG表示删除到尾行) |
x | 删除光标后的一个字符 | nx表示删除光标后n个字符,类似windows下的delete键(尝试了一下发现linux下delete键作用与x相同) |
X | 删除光标前的一个字符 | nX表示删除光标后的n个字符类似windows下的backspace键盘(尝试了发现linux下的backspace表示光标左移) |
u | 撤销上次操作 | |
ctrl+←/→键 | 快速向左右移动光标 | (即每个空格空行间快速移动) |
n+←/→键 | 向左或者向右移动n个字符 |
2.编辑模式
命令 | 含义 | 备注 |
---|---|---|
i | 在光标所在字符前开始插入 | (记忆:insert) |
a | 在光标所在字符后开始插入 | (记忆:after insert) |
I | 在光标所在行行首开始插入 | |
A | 在光标所在行行尾开始插入 | |
o | 在光标所在行的上面另起一行插入 | |
O | 在光标所在行下面另起一行插入 | |
s | 删除光标所指向字符再插入 | 类似覆盖替换操作(记忆:switch) |
S | 删除光标所在行开始插入 | 类似覆盖替换操作(记忆:switch) |
(观察一下编辑模式的命令,发现大写一般在行间操作,小写一般在光标左右操作,此规律仅笔者用于记忆大概的小总结,并不严谨,例如以上命令o就不满足这个规律)
3.底行模式
①如何进入底行模式?
- 命令模式进入底行模式:按冒号 :
- 编辑模式进入底行模式:先按 Esc键退出到命令模式,然后再按冒号:
②底行模式的功能
1.保存和退出
命令 | 含义 | 备注 |
---|---|---|
w | 保存文件 | (记忆:write) |
wq | 保存并退出文件 | (记忆:write quit) |
q | 正常退出文件 | 未修改文件内容时用(记忆:quit) |
q! | 强制退出文件 | 修改不保存文件内容时用 |
x | 保存并退出文件 | 无修改的情况下,表示直接退出(等价:q),在文件修改的情况下表示保存并退出(:wq) |
2.搜索替换
①仅搜索
【例】搜索root这个词
:/root
[备注]:在尾行模式输入:/与命令行模式下输入/同样可达到搜索效果
【例】搜索/sbin/nologin这一串内容(即含有/字符,需要每个字符前加入转义字符\)
:/root \/sbin\/nologin
【例】取消高亮
:noh
②搜索替换
【例】全文搜索root这个词并替换成root
:%s/root/Root/g
③其他功能
- 临时设置行号
:set number
或:set nu
- 永久设置行号
echo "set number" >> /etc/vimrc
- 查看控制符
:set list
- 地址定位
:1,5 w /tmp/5.txt
-----保存前5行内容到/tmp/5.txt
:r /tmp/5.txt
----- 在光标所在行下面读取/tmp/5.txt文件内容
:3r /tmp/5.txt
-----在当前文本的第3行后读取/tmp/5.txt文件
:1,8d
----- 删掉文本的1到8行
文章主要是整理了自学linux入门视频的笔记(例子采用视频和课件中的例子加以总结以及自己记忆的一些技巧,黑马linux运维入门的视频,可在b站搜索到)