本文为循序渐进学运维系列的基础篇,文章已收录gitee. 在Gitee上,点击直达 有运维技术的全部技术栈和文档,免费学习。 打造运维行业最全的知识体系,



文章目录


前言

vim号称编辑器之神,很多人都经历了从入门到放弃的痛苦过程。如今使用vim已有10年,vim极高的提高了我的工作效率,而且在使用的过程中总能不经意间发现一些使用技巧,仿佛突然掉到山洞里,捡到了一本绝世武功秘籍一样。

vim从入门到放弃-绝密版_运维

一般我们使用的centos或者其他的Linux操作系统都已经默认装了vim。可以直接查看是否已经安装。

​[root@zmgaosh ~]# rpm -qf which vim​

​vim-enhanced-7.4.629-6.el7.x86_64​

vim 编辑器有三种工作模式: 命令模式,输入模式,末行模式

vim从入门到放弃-绝密版_vim_02

记住几个点:

首次进入文件 是命令模式

出现 “insert" 是编辑模式

输入:(左下角) 是 命令行模式

我们先来看输入模式:

输入模式

进入编辑模式的方法: ​a i o A I O​(任意一个字母都可以切换到编辑模式)

vim从入门到放弃-绝密版_运维_03

这里做一下说明:(见表格)

1) 插入方式

结果

i

当前字符之前插入 (光标前)

I

行首插入

a

当前之后插入(光标后)

A

行尾插入(行尾)

o

下一行插入 (另起一行)

O

上一行插入(上一行插入)

注意: 按下这些字母不是为了输入某个字符,而是为了切换到插入模式。按ESC可以返回到命令模式,为了确保能够真的返回,有时候需要按两次esc

命令行模式

在命令行模式下能够进行的操作:

1. 光标定位类:

h: 左

j: 下

k: 上

l: 右

数字0 和home键表示切换到行首

$和end键表示切换到行尾

gg 表示快速定位到文档的首行,

G: 定位到末行

3gg或者3G表示快速定位到第3行

2. 正则匹配类:

/string(字符串) 找到你要找的单词或者内容, 如果同样的内容很多,可以使用N/n来向上或者向下查找。

/^d 查找以什么开头的内容, 此处是查找以d开头的内容

/t$ 查找以t结尾的内容

技巧: 如果想打开文件后光标直接到文件的最后一行,可以使用+

比如我们要打开/etc/passwd ,打开后让光标在最后一行

vim + /etc/passwd

3. 文本编辑类:

复制,粘贴,删除,撤销

按键

作用

y

复制

yy

复制整行

y$

从光标所在位置复制到行尾

y^

从光标所在位置复制到行首

dd

删除/剪切

3dd

删除3行

d0

删除到行首

d$

删除到行尾

p

粘贴

x

删除光标所在位置的字符

D

从光标处删除到行尾

u

撤销删除

ctrl+r

还原撤销过的操作

r

替换

4. 可视化类操作

V: 进入可视化模式

R: 擦除,改写,进入替换模式

举个例子:

给多行加#

CTRL+V --选中要加#的行 – 输入大写的I —在第一行加#–按两下esc

vim从入门到放弃-绝密版_运维_04

末行模式操作:

1. 保存退出命令

键盘输入

作用

:w

保存

:w!

强制保存

:q

不做任何修改直接退出

:q!

不做任何修改强制退出

:wq

保存并退出

:wq!

强制保存退出

:x

保存退出

ZZ

保存退出

2. 调用外部命令

:! +命令

比如要查看当前的ip

:r 读取文件并追加到文档中

vim从入门到放弃-绝密版_输入模式_05

3. 文本替换(难点也是重点)

格式 : 范围(其中%所有内容) s分隔符 旧的内容 分隔符 新的内容 (分隔符可以自定义)

vim从入门到放弃-绝密版_vim_06

举个例子:

:1,3 s/bin/gaosh 替换第1到3行中出现的第一个bin进行替换为gaosh

:1,3 s/bin/gaosh/g 替换第1到3行中查找到所有的bin进行替换为gaosh

:3 s/bin/aaaaa #只把第3行中内容替换了

:% s/do/gaosh/g 将文本中所有的do替换成gaosh

:% s/do/gaosh/gi 将文本中所有的do替换成gaosh, 并且忽略do的大小写

:% s@a@b@g 将文本中所有的a替换成b

4. 自定义 vim使用环境

命令

作用

:set nu

设置行号

:set ic

不区分大小写

:set list

显示控制 字符

:set nonu

取消设置行业

:set ai

自动缩进

:noh

取消高亮显示

:set all

查看所有可以配置的参数

####后记:

本文已收录到gitee,在gitee上汇总了运维学习的整个技术栈,欢迎star, 后期会持续更新。

vim从入门到放弃-绝密版_运维_07