Vim 是 Linux 上常用的文本编辑器,但是它的使用方法和很多现代编辑器不同,初学者可能会觉得使用困难
最好的学习 Vim 的方式是查看官方的内置帮助文件
vim | |
:help |
# Vim
不同于一般编辑器的直接输入,Vim 存在使用模式,一般有如下四个
- 正常模式 (Normal mode)
- 插入模式 (Insert mode)
- 可视模式 (Visual mode)
- 命令模式 (Command mode)
编辑器的底部会显示当前所处的模式
-- INSERT --表示插入模式-- VISUAL --表示可视模式:表示命令模式- 没有任何标识表示正常模式
# 正常模式
Vim 在启动时,一般默认为正常模式
在任意模式下,按 Esc 键可以切换回正常模式
命令模式或者可视模式下执行完操作以后,就会自动进入正常模式
正常模式一般用于浏览文件,也包括一些复制、粘贴、删除等操作
此时键盘的输入不会被视为文本内容,而是视为命令
在这个模式下,可以通过键盘在文本中快速移动光标
# 插入模式
在正常模式中按下个别字母键(如 i 、 a 、 o 等)可以进入插入模式
在插入模式下,键盘的输入会被直接视为文本内容
按下 Esc 键可以退出插入模式,回到正常模式
# 可视模式
在正常模式下,按下 v 键可以进入可视模式
在可视模式下,可以使用光标移动键选择文本内容
# 命令模式
在正常模式下,按下 : 键可以进入命令模式
在命令模式下,可以输入各种命令来执行文件操作,如保存、退出、查找等
按下 Enter 键可以执行命令,执行完毕后会自动回到正常模式
# 基本操作
通过 Vim 打开文件
vim <file> |
也可以同时打开多个文件
vim <file1> <file2> ... |
直接打开多个文件时,Vim 默认显示第一个文件,可以通过命令模式切换
:ls列出所有打开的文件:b1切换到第 1 个文件:b2切换到第 2 个文件- 以此类推
如果需要分屏,加入 -O 或 -o 参数
vim -On file1 file2 | |
vim -on file1 file2 |
-O参数表示垂直分屏-o参数表示水平分屏n表示分屏的数量,替换为数字,默认是 2
也可以分割当前打开的文件
Ctrl + w + v垂直分屏Ctrl + w + s水平分屏
在已经打开了的 Vim 窗口中,可以通过命令模式分割打开新的文件
:vsp <file>垂直分屏打开文件:sp <file>水平分屏打开文件
但是光标在不同文件中不是直接切换移动,需要使用快捷键
Ctrl + w + h切换到左侧窗口Ctrl + w + j切换到下方窗口Ctrl + w + k切换到上方窗口Ctrl + w + l切换到右侧窗口
文件位置的切换
Ctrl + w + H将当前窗口移动到最左侧Ctrl + w + J将当前窗口移动到最下方Ctrl + w + K将当前窗口移动到最上方Ctrl + w + L将当前窗口移动到最右侧
关闭分屏
Ctrl + w + c关闭当前窗口Ctrl + w + q关闭当前窗口,如果是最后一个窗口则退出 Vim
退出 Vim
:w保存文件,但是不退出:w!强制保存文件:w <file>另存为文件:q退出当前窗口,如果是最后一个窗口则退出 Vim:q!强制退出当前窗口,不保存修改:wq保存并退出当前窗口,也可以使用快捷键ZZ:x保存并退出当前窗口,等同于:wq:e <file>打开文件:e!放弃修改,重新加载当前文件
# 文本输入
如果需要在 Vim 中输入文本,需要进入插入模式,插入模式有多种进入方式
i在光标所在的 字符前,插入文本I在光标所在行的 行首,插入文本a在光标所在的 字符后,插入文本A在光标所在行的 行尾,插入文本o在光标所在行的 下方,插入新行,插入文本O在光标所在行的 上方,插入新行,插入文本s删除光标所在的 字符,并进入插入模式S删除光标所在的 整行,并进入插入模式cw删除光标所在位置到单词结尾的内容,并进入插入模式
# 命令
在命令模式下,可以输入各种命令来执行文件操作
- ':set nu` 显示行号
:set nonu关闭行号显示:n定位到 n 行/<text>查找文本<text>n1,n2d删除第 n1 行到第 n2 行的内容u撤销上一步操作