初识vim文本编辑器

1.进入vim编辑器

在Linux中使用vi或者vim命令进入vi或vim文本编辑器
Cent OS 7中默认没有安装vim文本编辑器,需自行安装。安装方法见 Linux常用命令yum部分

[root@aspen ~]# vi ~/aspen/Aspen.txt 
Hello World
Welcome to Linux

2.vim编辑器的三种模式

  • 命令模式:设有大量快捷键,以提高编辑操作效率;
vim中的快捷键与系统快捷键不同,不是同一个概念
  • 编辑模式:向目标文本中输入内容;
  • 底行模式:进行保存、搜索、退出等操作;

三种模式的转换方式见下图

3.vim快捷键

命令模式

操作 含义 备注
一、模式转换
: / ? 由命令模式进入底行模式
i I o O a A 由命令模式进入编辑模式 i 光标不进行任何操作,进入编辑模式
I 光标移至行首,进入编辑模式
o 光标移至下一行,进入编辑模式
O 光标移至上一行,进入编辑模式
a 光标移至下一字符,进入编辑模式
A 光标移至行尾,进入编辑模式
C 删除光标所在处至当前行尾内容,并进入编辑模式
R 进入REPLACE模式,连续替换 ESC结束并退出替换模式
shift+v(组合键) 由命令模式进入可视行模式 选择编辑行区域 上下键
y 复制可视行区域内容
d 删除可视行区域内容
ctrl+v(组合键) 由命令模式进入可视块模式 选择可编辑区域:方向键
d或x 删除可视块区域内容
I 可视块模式进入编辑模式
r 替换可视块区域内容
ZZ 保存并退出
二、光标跳转
G 光标跳转至文件尾行
gg 光标跳转至文件首行
Ngg 光标快速移动至N行 N 为数字
$ 光标跳转至光标所在行行尾
^ 0 光标跳转至光标所在行行首
三、翻页操作
ctrl+f(组合键) 下翻一页
ctrl+b(组合键) 上翻一页
四、复制、粘贴
yy 复制光标所在行
Nyy 复制光标所在行以及向下n-1行 N 为数字
p 粘贴至当前光标所在行的下一行
Np 按数字指定次数粘贴内容 N 为数字
P 粘贴至当前光标所在行的上一行
四、删除,剪切,撤销
dd 剪切或删除光标所在行
Ndd 删除光标所在行以及向下n-1行 N 为数字
dG 删除光标所在行及之后所有行
D 删除光标所在处至行尾的内容
C 删除光标所在处至当前行尾内容,并进入编辑模式
x 删除光标所在处往后的字符
X 删除光标所在处往前的字符
dd & p 剪贴;先删除dd,后粘贴p
u 撤销上一次的操作
ctrl+r(组合键) 恢复上一次的操作
四、替换
r 替换光标当前所在位置字符
R 进入REPLACE模式,连续替换 ESC结束并退出替换模式

编辑模式

操作 含义 备注
ESC键 退回至命令模式

底行模式

操作 含义 备注
一、文件保存与退出
:w 保存当前状态
:w! 强制保存当前状态
:q 不保存,并退出当前文档 无法直接退出已修改文档
:q! 强制退出文档,不会修改保存修改;
:wq 保存并退出
:wq! 强制保存并退出
: x 保存并退出
:N 跳转至指定行 N 为数字
二、文件内容查找
/str 查找关键字内容 n 显示下一个搜索结果;
N显示上一个搜索结果
三、文件内容替换
:n1,n2s#str1#str2#g 替换n1至n2行中包含str1的内容为str2 n1,n2 为数字,表示行号
str1,str2 为关键字
:%s#str1#str2#g 全局(整个文档)替换包含str1的内容为str2 str1,str2 为关键字
:%s#str1#str2#gc 全局(整个文档)替换包含str1的内容为str2,并提示是否需要替换 str1,str2 为关键字· ·
四、文件内容另存
:w /目录/文件名 将文件另存为指定文件
五、文件内容读入
:r /目录/文件名 读入指定文件内容至当前光标位置下面
:Nr /目录/文件名 读入指定文件内容至当前文件第N行下面 N 为数字
六、其他
:set nu 显示行号 环境变量临时生效
:set nonu 取消显示行号 环境变量临时生效
:set ai 自动缩进 环境变量临时生效
:set noai 取消自动缩进 环境变量临时生效
:set ic 忽略大小写(一般在搜索时使用) 环境变量临时生效
:set noic 取消忽略大小写 环境变量临时生效
:set list 显示制表符(空行、tab键等) 环境变量临时生效
:set nolist 取消显示制表符(空行、tab键等) 环境变量临时生效
:nohl 取消高亮显示 环境变量临时生效
Esc 退回至命令行模式
若需要环境变量永久生效,需修改vim环境变量配置文件。
/etc/vimrc(全局vim环境变量配置文件)
~/.vimrc(用户vim环境变量配置文件)
vim环境变量文件:
系统配置文件:/etc/vimrc
用户配置文件:~/.vimrc

附:如果用户没有配置环境变量,则使用系统环境变量;
若用户配置文件与系统配置文件产生冲突,则优先使用用户配置文件


即优先级:~/.vimrc > /etc/vimrc

4.vim故障

故障1
故障原因:vim编辑文件时,突然与系统断开;
故障现象:系统提示该文件存在缓存文件

E325: ATTENTION
Found a swap file by the name "./aspen/.Aspen.txt.swp"
          owned by: root   dated: Thu Apr 11 20:00:01 2019
         file name: ~root/aspen/Aspen.txt
          modified: YES
         user name: root   host name: aspen
        process ID: 7641
While opening file "./aspen/Aspen.txt"
             dated: Thu Apr 11 19:17:50 2019

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.
(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r ./aspen/Aspen.txt"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file "./aspen/.Aspen.txt.swp"
    to avoid this message.

Swap file "./aspen/.Aspen.txt.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

解决方案:按回车进入文件后,直接退出文件;删除缓存文件后,重新用vi编辑器打开文件

[root@aspen ~]# ls -a ./aspen/
.  ..  Aspen.txt  .Aspen.txt.swp
[root@aspen ~]# rm -f ./aspen/.Aspen.txt.swp
[root@aspen ~]# vim ./aspen/Aspen.txt 
Hello World
Welcome to Linux
I
am
studying
Linux
可以使用vim -r 将缓存文件的内容恢复到文件中并继续编辑文件;编辑完成后,需手动删除缓存文件!
实际工作中不建议恢复缓存文件内容

未完待续...