目录
一、 什么是 Vim
Vim 是一款功能强大的文本编辑器,是 Unix 和类 Unix 系统下的一种文本编辑器。Vim 是 Vi 编辑器的改进版,Vi 是最早出现于 Unix 系统的一款文本编辑器,而 Vim(Vi IMproved)在 Vi 的基础上增加了许多功能和改进,成为了一个功能更加强大、灵活且易于扩展的文本编辑器。
二、vi/vim 的使用
vi/vim基本上可以分为三种模式,命令/普通/正常模式、插入模式、底行模式,各模式的功能区分如下:
- 命令模式/普通/正常模式(Command Mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段以及进入
插入模式
下,或者到底行模式
- 插入模式(Insert Mode)
只有在
插入模式
下,才可以做文字输入,按ESC
键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
- 底行模式(Last Line Mode)
文件要保存或者退出,也可以进行文件替换,找字符串,列出行号等操作。在命令行模式下,
shift + :
即可进入该模式。
具体三种模式转换关系如下图:
2.1 命令模式/普通/正常模式(Command Mode)
当用户刚刚启动 vi/vim 时,便进入了命令模式。此状态下敲击键盘动作被 Vim 识别为命令,而非字符,比如我们此时输入o
,并不会输入一个字符,o
被当作了一个命令。以下是命令模式下常用的命令:
1. 光标移动命令
h
:向左移动光标j
:向下移动光标k
:向上移动光标l
:向右移动光标w
:按照 “单词” 在行内往后移动b
:按照 “单词” 在行内往前移动shift + ^
:光标定位到当前行的最左侧开头处 锚点shift + $
:光标定位到当前行的最右侧结尾处 锚点gg
:跳到文件开头shift + g
:跳到文件的末尾
2. 文本编辑命令
n + x
:删除光标所在位置的字符,n
表示数量,即删除的字符数n + X
:删除光标左侧所在位置的字符,n
表示数量,即删除的字符数n + yy
:复制当前行,n
表示数量,即复制的行数n + p
:粘贴剪切或复制的文本,n
表示数量,即粘贴的文本数量n + dd
:删除当前行,n
表示数量,即删除的行数u
:撤销编辑操作ctrl + r
:对撤销进行撤销.
:重复上一次操作~
:大小写快速切换
3. 查找与替换命令
n + r
:替换当前光标所在字符,n
表示数量,即替换的字符数R
:进入替换模式#
:高亮要查找的函数名n
:下一个查找到的函数/字符串名/pattern
:向后查找指定模式。?pattern
:向前查找指定模式。s/search/replace/g
:替换搜索到的内容。s/search/replace/gc
:替换搜索到的内容,但需确认每次替换。
2.2 插入模式
在命令模式下,按下 i
就进入了输入模式,使用 ESC
键就可以返回到普通模式。在输入模式中,可以使用以下按键:
字符案件以及 shift 组合
:输入字符ENTER键
:回车键、换行BACK SPACE
:退格键,删除光标前一个字符DEL
:删除键,删除光标后一个字符方向键
:在文本中移动光标HOME/END
:移动光标到行首/行尾Page Up/Page Down
:上/下翻页Inset
:切换光标为输入/替换模式,光标变成竖线/下划线ESC
:退出输入模式,切换到命令模式
2.3 底行模式
在 Vim 的底行模式下,可以执行各种操作,如保存文件、搜索文件、替换文本等。以下是一些常用的Vim底行模式下的命令及其作用:
1. 保存和退出
:w
:保存文件但并退出:w 文件名
:将文件保存为指定文件名:q
:退出 Vim:q!
:强制退出,不保存修改wq 或 :x
:保存并退出
2. 显示行号、鼠标操作
set number
:显示行号set nonumber
:隐藏行号set mouse=a
:设置鼠标操作set 选项
:设置 vim 选项,如set number
设置显示行号
3. 移动光标
n
:跳转到第 n 行$
:跳转到文件末尾1
:跳转到文件开头
4. 文件操作
:e 文件名
:打开另一个文件进行编辑:r 文件名
:将另一个文件的内容插入到当前的文件中:sav 文件名
:另存为指定文件名
5. 执行外部命令
:! command
:执行外部命令,如::!ls
显示当前目录文件列表
三、总结
总的来说,Vim是一款功能强大、高效的文本编辑器,尤其适合程序员和系统管理员等需要频繁编辑文本文件的用户使用。虽然学习曲线较陡,但一旦掌握了Vim的基本操作,将会极大地提高文本编辑的效率和便捷性。