Vim学习
模式
VIM 中有多种模式:基本模式和派生模式
基本模式
Normal mode 普通模式、默认模式、命令模式
默认模式,首次用 VIM 打开文件进入该模式,在其他模式中可以使用 ESC
进入该模式。也叫命令模式
使用
Ctrl + g
可显示当前文件名和一些其他信息
Visual mode 可视模式
在 Normal mode 下,输入 v
, V
或者 Ctrl + v
进入可视化模式,该模式可以选择一块编辑区域,然后对选中的文件内容执行 插入
、删除
、替换
、改变大小写
等操作。
字符选择模式:选中光标经过的所有字符,普通模式下按
v
进入行选择模式:选中光标经过的所有行,普通模式下按
V
进入块选择模式:选中一整个矩形框表示的所有文本,普通模式下按
Ctrl + v
进入
可以使用
o
在选中区域的左上角和右下角切换
参考 https://vimjc.com/vim-visual-mode.html
Select mode 选择模式
可以用鼠标或光标键高亮选择文本
任何输入都会替换选择的高亮文本
并进入插入模式
参考 https://www.bilibili.com/read/cv12497070
Insert mode 插入模式、编辑模式
可以将你的输入插入当前文档
从普通模式进入插入模式
i
光标的前一个字符处I
光标当前行的行首a
光标的后一个字符处A
光标当前行的行尾o
光标当前行的下一行O
光标当前行的上一行
参考 https://vimjc.com/vim-edit-command.html
Command-Line mode 命令行模式
普通模式输入 :
进入命令行模式
一些常用的命令
:set number
显示行号,简写:se[t] nu[mber]
:set nonumber
关闭显示行号,简写:se[t] nonu[mber]
:set relativenumber
显示相对行号,简写se[t] rnu
,这时同时设置:se nu
会,当前行显示绝对行号,上下部分显示相对行号:w
保存当前编辑的文件:wq
保存当前编辑的文件并退出:w!
强制将当前文件保存:q
退出vim:q!
强制退出:write [fileName]
将当前文件另存为fileName
并打开:saveas [fileName]
将当前文件另存为fileName
,简写:sav [fileName]
/
查询,n
查找上一个,N
查找上一个
参考
https://www.bilibili.com/read/cv12686699
https://vimjc.com/vim-edit-command.html
Ex mode 多行命令执行模式
Ex 指的是 Execute
在普通模式使用 gQ
进入,使用 :visual
退出
参考 https://www.bilibili.com/read/cv12497070
Vim 文本编辑命令
插入
从普通模式进入插入模式
i
光标的前一个字符处I
光标当前行的行首a
光标的后一个字符处A
光标当前行的行尾o
光标当前行的下一行O
光标当前行的上一行
删除
在普通模式下
x
删除光标位置的一个字符dd
删除光标所在行d0
删除光标位置到当前的行首d$
删除光标位置到当前的行尾db
、dB
删除从光标位置到当前单词开始部分dw
、dW
删除从光标位置当当前单词结束部分cb
、cB
删除从光标位置到当前单词开始部分,并进入插入模式cw
、cW
删除从光标位置到当前单词结束部分,并进入插入模式
复制、粘贴
在普通模式下
yw
复制从光标位置到当前单词结束部分的内容yy
复制当前行p
将复制的文本内容复制到光标所在的字符后P
将复制的文本内容复制到光标所在的字符前
替换
r
替换光标所在字符一次R
一直替换,直到按下ESC
键
撤销
u
撤销U
撤销撤销的内容
保存
:w
保存当前编辑的文件:wq
保存当前编辑的文件并退出:w!
强制将当前文件保存
另存为
:write [fileName]
将当前文件另存为fileName
并打开:saveas [fileName]
将当前文件另存为fileName
,简写:sav [fileName]
Vim 中的位置
在普通模式下可以使用
h
、j
、k
、l
,移动左、下、上、右gg
到当前文本的行首G
到当前文本的行尾