你必须非常努力,才能看起来毫不费力!
微信搜索公众号[ 漫漫Coding路 ],一起From Zero To Hero !
前言
vim 是从vi发展出来的一个文本编辑器。其代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
Vim的第一个版本由布莱姆·米勒在1991年发布。最初的简称是Vi IMitation,随着功能的不断增加,正式名称改成了Vi IMproved。不过很多人在实际使用的时候,还是习惯使用Vi命令,因此在很多Linux版本中,系统对Vim做了一个别名还是叫Vi。
Vim是一个功能强大的全屏幕文本编辑器,不仅可以用于编辑文本,在编程方面也是非常强大,Linux/UNIX系统都会默认安装这个编辑器。正因为Vim的强大,会有很多命令需要学习,这里只介绍些常用的命令,在满足日常的文本编辑需求的同时,还能显著提高效率。
概念介绍
vim 有三种基础工作模式,分别是普通模式,插入模式 和 命令行模式。
普通模式
Vim启动后的默认模式,此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下 i,并不会输入一个字符,i 被当作了一个命令。不管用户处于何种模式,只要按一下 ESC 键,即可使Vim进入普通模式。
插入模式
这个模式和我们平时使用的编辑器是一样的,用户输入的任何字符都被 Vim 当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到普通模式,按 ESC 键即可。
命令行模式
在普通模式下按下 :、/ 或者 ! 字符,这时你会看到窗口的左下角出现了相应的字符 ,代表你已经进入命令行模式可以进行命令的输入,输入的命令会出现在字符后面,按回车就会执行相应的命令。
插入命令
在普通模式下,输入下述命令,会进入插入模式,然后就可以进行文本的输入。
| 命令 | 作用 |
|---|---|
| a | 在光标所在字符后插入 |
| A | 在光标所在行尾插入 |
| i | 在光标所在字符前插入 |
| I | 在光标所在行首插入 |
| o | 在光标下插入新行 |
| O | 在光标上插入新行 |
保存和退出命令
在执行插入命令完成文本编辑后,按 ESC 退出插入模式,进入普通模式。如果想要保存文件并退出,即下述命令的 :wq,此时输入:(英文冒号)进入命令行模式,然后输入 wq 保存文件并退出。ZZ 命令是在普通模式下,按 shift+Z 两次即可。
| 命令 | 作用 |
|---|---|
| :w | 保存修改 |
| :w new_filename | 另存为指定文件 |
| :wq | 保存并退出 |
| ZZ | 保存并退出 |
| :q! | 不保存修改退出 |
| :wq! | 保存修改并退出(文件所有者及root可使用) |
如下动图首先新建了一个文件,然后通过vim打开,按下 i 键进行输入文本,然后按下ESC键进入普通模式,最后输入:wq保存退出。
定位命令
在普通模式下,分别执行如下命令,可以做到快速定位。
| 命令 | 作用 |
|---|---|
| : set nu | 设置行号 |
| : set nonu | 取消行号 |
| gg | 到第一行 |
| G | 到最后一行 |
| nG | 到第n行 |
| : n | 到第n行 |
| $ | 到行尾 |
| 0 | 到行首 |
动图中(注意光标的位置),首先打开了一个文件,然后输入 :set nu 显示行号,然后键盘按下G(shift+g)命令到最后一行,然后按gg到第一行,输入:3 到第三行,按 $ 到行尾,按下 0 到行首,然后输入 :set nonu 取消行号,最后输入 :q 退出。
替换和取消命令
在普通模式下,可以执行如下命令,实现替换和取消。
| 命令 | 作用 |
|---|---|
| r | 取代光标所在处字符 |
| R | 从光标所在处开始替换字符,按ESC结束 |
| u | 取消上一步操作 |
动图中,打开了一个文本文件,然后键盘按下 r 键,然后输入 0 替换了文本文件中的 i 字符。按下 R 键(shift+r),可以从光标处连续替换字符。最后按下了 ESC 键,进入普通模式,最后连续按 u 键,取消上一步操作。最后输入 :q,退出vim。
复制和剪切命令
普通模式下,按下如下命令,即可实现快速的复制粘贴。
| 命令 | 作用 |
|---|---|
| yy | 复制当前行 |
| nyy | 复制当前行以下n行(含当前行) |
| dd | 剪切当前行 |
| ndd | 剪切当前行以下n行(含当前行) |
| p / P | 粘贴在当前光标所在行下 / 上 |
如下动图中,首先打开了一个文件,按 ↑键 将光标移动到第一行,键盘按下 yy 命令,复制第一行内容,然后将光标移动到最后一行,按了三次 p命令,进行粘贴,最后输入 :wq 退出。
删除命令
在普通模式下,输入如下命令,即可实现快速的文本删除。
| 命令 | 作用 |
|---|---|
| x | 删除光标所在处字符 |
| nx | 删除光标所在处后的n个字符 |
| dd / ndd | 删除光标所在行 / 光标后n行 |
| dG | 删除文件所在行到文件末尾内容 |
| D | 删除光标所在处到行尾内容 |
| :n1,n2d | 删除指定范围内的行 |
如下动图中,首先通过vim打开一个文件,然后按下 x 键删除光标处内容,然后按下 dd 删除三行内容,再按下 2dd 删除两行内容。
搜索和替换命令
普通模式下,输入如下命令,可以快速完成文档中的内容搜索和替换操作。
| 命令 | 作用 |
|---|---|
| /string | 搜索指定字符串,搜索时指定忽略大小写 :set ic |
| n | 搜索指定字符串的下一个出现位置 |
| :%s/old/new/g | 全文替换指定字符串 |
| :n1,n2s/old/new/g | 在一定范围内替换字符串 |
如下动图中,首先打开了一个文件,然后输入了 /love 进行查找,然后输入了 :%s/hate/love/g 进行全文替换。
总结
本文介绍了Linux中vim相关的操作,主要包含以下内容:
- vim的三种基本模式
- 插入命令
- 保存命令
- 定位命令
- 替换和取消命令
- 删除命令
- 搜索和替换命令
命令比较多,不需要死记硬背,使用的多了,也便记住了。
更多
个人博客: lifelmy.github.io/
微信公众号:漫漫Coding路