概念
VIM编辑器的前身是VI(Visual interface)编辑器,相当于VI的升级版。
VIM是文本编辑器,可以编辑纯文本文件,但是不能像Office Word、WPS那样进行排版(设置字体,段落格式等)。
VIM的四种模式
- 一般模式(Normal mode):可以通过快捷键进行光标移动、快速编辑等操作
- 命令模式(Command mode):状态栏以
:
开头,可以输入并允许VIM命令 - 插入模式(Insert mode):可以编辑文本内容,但无法使用一般模式下的快捷键和命令模式下的命令
- 可视模式(Visual mode):可以选择文本内容
从命令行进入VIM的方式:
- vi:直接进入vim的欢迎界面,不打开任何文件
- vi filename:打开filename文件
- vi +n filename:打开filename文件,并将光标置于第n行行首
- vi + filename:打开filename文件,并将光标置于最后一行行首
从VIM退出到命令行的方式:
- :q与:q!
- :wq与:wq!
- ZZ与ZQ
从普通模式进入插入模式的快捷键:
- a:在光标所在位置后进入插入模式,append
- A:将光标移动到行尾并进入插入模式
- i:在光标所在处进入插入模式,insert
- I:将光标移动到行首并进入插入模式
- o:在光标当前行下方插入一个空行,并在此空行行首进入插入模式
- O:在光标当前行上方插入一个空行,并在此空行行首进入插入模式
从普通模式进入可视模式的快捷键:
- v:按字符选择
- V(shift+v):按行选择
- ctrl+v:按列选择
从任意模式退出到普通模式的方式:ESC
普通模式
光标移动
- 移动光标:hjkl
- 屏幕向下移动一页(forward):ctrl+f
- 屏幕向上移动一页(backward):ctrl+b
- 将光标移动到下一个单词的首字母:w
- 如果当前光标不在本单词的末尾字母,则移动到本单词的末尾字母上,否则移动到下一个单词的末尾字母:e
- 如果当前光标不在本单词的首字母,则移动到本单词的首字母上,否则移动到上一个单词的首字母:b
- 将光标移动到行首: 0
- 将光标移动到本行第一个非空字符上: ^
- 将光标移动到行尾: $
- 在光标位置的下一行插入一个空行:o
- 在光标位置的上一行插入一个空行:O
- 将光标移动到这个屏幕的最上方那一行的第一个字符:H
- 将光标移动到这个屏幕的最下方那一行的第一个字符:L
- 将光标移动到这个文件的第一行: gg
- 将光标移动到这个文件的最后一行:G
- 将光标移动到这个文件的第n行:nG
- 匹配括号移动:%
快速编辑
- 删除当前光标位置的字符:x
- 删除一整行: dd
- 删除光标所在的向下 n 行: ndd
- 删除本单词中光标右边的所有字符:dw
- 删除本单词中光标左边的所有字符:db
- 删除游标所在处,到该行的最后一个字符: d$
- 删除游标所在处,到该行的最前面一个字符: d0
- 删除光标所在到最后一行的所有数据: dG
- 删除整个文件的所有内容:ggdG
- 将光标所在行与下一行的数据结合成同一行:J
- 撤销上一次的编辑内容:u
- 重做上一次的编辑内容:ctrl+r、.
- 替换光标当前位置的字符:r
- 保存并退出:ZZ
命令模式
- 打开行号:set nu
- 取消行号:set nonu
- 保存:w
- 将文件保存为:w [filename]
- 退出:q
- 强制退出:q!
- 保存并退出:wq
- 将 n1 到 n2 的内容储存成 filename 这个文件:n1,n2 w [filename]
- 打开文件: e filename
- 查找字符串:/string
- 查找下一个字符串出现的位置:n
- 查找上一个字符串出现的位置: N
- 移动到这个文件的第n行:n
可视模式
- 选择字符:v
- 选择行:shift + v
- 复制选中内容:y
- 复制当前行: yy
- 粘贴:p
- 剪切选中内容:c (会进入插入模式,如果需要粘贴剪切的内容,需要先退出插入模式)
- 删除选中内容:d
- 选择列:ctrl + v