目录
1、vim的基本概念
2、vim的基本操作
2.1、vim 编辑器的进入与退出
2.2、插入模式
2.3、命令模式
2.4、底行模式
3、vim的配置
3.1、自定义配置
3.2、自动化配置
vim 的前身是 vi,vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。
1、vim的基本概念
vim 不是一款集成开发程序,单纯只是一个多模式的 编辑器 。在 Linux 上一般使用 vim 来写代码,使用 gcc 来编译,使用 gdb 调试,工具与工具之间互相独立。
vim 的模式有很多种,其中最常用的三种模式,分别为命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode):
- 命令模式(Normal mode):控制屏幕光标的移动,字符、字或行的删除,移动复制某区段以及进入 插入模式 或者 末行模式 下。
- 插入模式(Insert mode):只有在 插入模式 下,才可以做文字输入,按「ESC」键可回到命令模式。该模式是我们后面用的最频繁的编辑模式。
- 底行模式(last line mode):文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,按下 shift+: 即可进入该模式。要查看你的所有模式:打开 vim,底行模式直接输入 :help vim-modes
三种模式转换关系如下图所示:
2、vim的基本操作
2.1、vim 编辑器的进入与退出
我们使用 vim 时,可以先使用 touch 指令创建一个文本文件,再使用 vim [文件名] 对其编辑,也可以直接使用 vim[文件名] ,系统会自动创建一个文本文件并命名为指定名字。
[root@iZuf69tfiox41j76yf0416Z lesson6]# ll
total 0
[root@iZuf69tfiox41j76yf0416Z lesson6]# touch test.c
[root@iZuf69tfiox41j76yf0416Z lesson6]# vim test.c
按下 enter 后,会进入 vim 编辑界面,默认模式为 命令模式 。我们按下 shift+: 进入底行模式,输入 q 可直接退出 vim 编辑器,此时我们编辑过的内容不会被保存,输入 wq 退出 vim 编辑器时,内容才会被保存。
2.2、插入模式
我们进入到 vim 编辑器,默认为 命令模式,可以发现我们在键盘上敲击字符,编辑器不会产生任何变化,这是因为只有在 插入模式 下,才可以做文字输入。在 命令模式 下键入字符 i ,可以切换到 插入模式。此时我们就可以进行文本编辑。
注意:编辑完成之后,我们要先按下 ESC 键回到 命令模式,才能退出 vim 编辑器。在 命令模式 下按下shift+: 进入 底行模式 ,输入 wq 保存并退出 vim 编辑器。
这时我们打印文件 test.c 可以看到文本已经被编辑了。
补充内容:
- 如果你不知道自己在什么模式下,直接按下 ESC 键,就能保证此时自己一定处于 命令模式下。
- 退出的时候,我们一般都是先保存再退出,即在 底行模式 下输入 wq 。
- 按下 a 或者 o 也可以进入插入模式。
2.3、命令模式
我们进入到 vim 编辑器,默认为 命令模式。为了方便观察,我们先按下 shift+: 进入 底行模式 ,输入 set nu 显示行号(set nonu 去掉行号)。再按下 ESC 键回到命令模式。
接下来介绍几个在 命令模式 下的指令:
- yy/nyy:复制当前行或者包括当前在内的往下 n 行内容
- dd/ndd:剪切(也可以当作删除使用)当前行或者包括当前在内的往下 n 行内容
- p/np:粘贴一行或者 n 行相同的内容到当前光标所在行之下
- u:撤销刚刚的操作
- Ctrl+r:对撤销操作进行撤销
- shift+g / G:将光标定位到文档结尾
- n shift+g / n G:将光标定位到第 n 行
- gg:将光标定位到文档开头
- $:将光标定位到该行的结尾
- ^:将光标定位到该行的开头
- w/nw:将光标按照单词为单位相右移动一个单位或者 n 个单位
- b/nb:将光标按照单词为单位相左移动一个单位或者 n 个单位
- shift + ~:快速对光标所在位置的字符进行大小写切换
- r /nr :将光标所在位置的一个字符或者向后的 n 个字符替换成指定字符
- x/nx:将光标所在位置的一个字符或者向后的 n 个字符删除
- X/nX:将光标所在位置的前一个字符或者向前的 n 个字符删除
- h/j/k/l:分别将光标向 左/下/上/右 移动一个字符
同学们一定要自己动手操作一遍。
2.4、底行模式
我们进入到 vim 编辑器,默认为 命令模式。按下 shift+: 可以进入到底行模式,我们来介绍 底行模式下 的几个指令。
- set nu:显示行号
- set nonu:去掉行号
- /字符串:搜索指定字符串,并把它们高亮标出
- wq:保存退出 vim 编辑器
- wq!:保存强制退出 vim 编辑器
- q:直接退出 vim 编辑器
- q!:直接强制退出 vim 编辑器
- ![指令] :切换到 vim 编辑器外并执行指定指令,并不退出 vim 编辑器
- %s/字符串A/字符串B/g:将 指定字符串A 全部替换成 指定字符串B
- vs [文件名]:在 vim 编辑器中创建一个新的文件为之命名,并分屏显示
- Ctrl+ww:在分屏的 vim 编辑器中来回切换,光标在哪一个分屏,操作的就是哪一个分屏中的文件
注意:在 vim 中,除了用鼠标复制粘贴外,不要用鼠标操作。
3、vim的配置
3.1、自定义配置
vim 在启动的时候,会自动在当前用户的家目录下寻找配置文件,如果没有,就是默认配置。
我们自己在家目录下创建一个文件,命名为 .vimrc ,这个文件就是 vim 启动时会寻找的配置文件。一个用户,一个 vim 配置,我们作为当前用户所做的配置,不会影响到其他用户。
我们使用 vim 对文件 .vimrc 进行编辑:
[ljb@iZuf69tfiox41j76yf0416Z ~]$ vim .vimrc
在文本中输入 set nu :
保存退出之后,我们使用 vim 编辑器打开之前编辑过的文件 test.c :
可以看到文本内容已经默认带上行号了
我们再使用 vim 打开文件 .vimrc ,把我们刚刚添加的一行代码 set su 删除掉,保存退出。
再使用 vim 编辑器打开文件 test.c:
此时文本内容已经不再自带行号了。
由此我们可知,对于 vim 编辑器的配置,是即时生效的!
这里仅仅是方便大家理解 vim 配置所进行的一个小小的操作,如果大家以后需要进行一些复杂的配置,可以直接去网上搜索,复制粘贴到我们自己的配置文件里就可以了。
3.2、自动化配置
如果不想自己费时费力去配置 vim 的话,也很简单,这里有一份自动配置方案,只不过只适用于 centos 7 版本,大家点击该链接就可以进行跳转。
往下翻,找到安装方法:
把这段链接直接复制到我们的 Linux 终端,按下 enter 。
输入 root 的密码,接下来就不用我们操作了,系统会自动进行 vim 配置,配置完成之后,按照提示的操作进行清理缓存,就可以直接使用了。
以下是配置好之后的 vim 编辑器:
以上就是 Linux 编辑器 vim 的基本知识,希望同学们多多支持,如果有不对的地方希望大佬指正,谢谢!