一、移动
1、正常模式下,以区块为单位移动
- 光标位置左,下,上,右:h 、 j 、k 、 l
- 整行跳转
- gg:快速跳转到第一行
- 数字+gg:跳转到数字行
- G:跳转到最后一行
- 半页跳转
- ctrl + u / b:往上翻半页/一页
- ctrl + d / f:往下翻半页/一页
- zz / zt /zb : 光标所在行放到屏幕居中、第一行、最后一行
2、以单词为单位移动
- 2w:使光标向后移动两个单词
- 3e:使光标向后移动到第三个单词的末尾
- 2b:向前移动到前一个单词的开始
- ge:向前移动到前一个单词的末尾
- 输入 0 (数字零) 移动光标到行首
二、删除
正常模式下,单个删除
- x 键:删除光标所在位置的字符
- dw :从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符
- de :从当前光标当前位置直到单词末尾,包括最后一个字符
- d 数字 w/e:一次删除多个单词
正常模式下,行删除
- d 数字 $:从光标处删除到指定行行末
- d$ :从当前光标当前位置直到当前行末
- dd :删除当前行
- 数字 dd:删除多行
三、插入
正常模式下,中间插入
- i:insert,当前光标之前插入
- a:append,在光标之后插入(光标后移一位,然后在光标前插入内容)
- s:select,删除当前光标指向的字符,然后开始输入
正常模式下,行插入
- I:在本行开头输入
- A:在本行末尾输入
- o:open,在下面插入一行开始输入
- O:在上方插入一行开始输入
- S:删除当前行开始输入
四、撤销
- 输入 u 来撤消最后执行的命令,ctrl + r 重做
- 输入 U 来撤消对整行的修改,u可以撤销U做的修改
五、替换
- 空白替换:按下 p 将最后一次删除的内容复制到光标后
- 连续替换:按下 R 可以连续替换多处文本
- 剩余替换
- 按下 r + 替换字符,替换光标所在位置的字符
- ce/cw:单词剩余替换,从光标所在位置直至单词末尾替换
- c$:本句剩余替换,从光标位置到句子的结尾删除,插入
- 替换命令
- :s/old/new/g 可以替换 old 为 new
- :#,#s/old/new/g 其中 #,# 代表的是替换操作的若干行中首尾两行的行号
- :%s/old/new/g 则是替换整个文件中的每个匹配串
- :%s/old/new/gc 找到整个文件中的每个匹配串,并且对每个匹配串提示是否进行替换
六、查找显示
- CTRL-G :显示当前编辑文件中当前光标所在行位置以及文件状态信息
- G :直接跳转到文件中的某一指定行,数字 + G:跳转到固定行
- %:光标放在括号上,点击 % 可以查找配对的括号 )、]、}
- ? 然后紧随一个字符串:是在当前所编辑的文档中反向查找该字符串
- / 然后紧随一个字符串:在当前所编辑的文档中正向查找该字符,按 n 可再次查找
- 重复查找:可以重复按 n 键
- 忽略大小写: :set ic (Ignore Case,忽略大小写)
- 高亮符合的所有项: :set hls (hlsearch,高亮显示)
- 高亮显示当前项::set is (incsearch,增量搜索)
- 选项前加no,关闭设置:如要禁用忽略大小写,输入: :set noic
七、文件命令
- 文件保存:将对文件的改动保存到文件中,请输入 :w FILENAME
- 可视化保存:选中开头,v 键,下移光标,选中想要保存的内容,w TEST 保存为 TEST,使用 :!dir 或 :!ls 确认文件被正确保存
- 插入文件:要将对文件的改动保存到文件中,请输入 :w FILENAME
- 命令文件::r !dir 将shell在的dir执行的结果插入当前光标的后面
- 复制粘贴:使用操作符 y 复制文本,使用 p 粘贴文本
- 补全命令:按 CTRL-D 可以查看可能的补全结果,按 <TAB> 可以使用一个补全
八、其他命令
- 执行外部命令:正常模式下,输入 :! 然后紧接着输入一个外部命令可以执行该shell命令
- 查看帮助:按下 help 键或者 F1,或者输入 :help <回车>,如 :help user-manual
- 在窗口间跳转:ctrl + w
- 各系统打开vim
- :edit ~/.vimrc Unix 系统所使用的命令
- :edit $VIM/_vimrc MS-Windows 系统所使用的命令
- 读取 vimrc 示例文件的内容::r $VIMRUNTIME/vimrc_example.vim
- 保存文件: :write