普通模式下:
移动游标
- j k h l 下 上 左 右
- w 移动到下一个单词
- b 移动到上一个单词
进入编辑模式
- i 在当前光标处插入
- I 在行首插入
- a 在当前光标后插入
- A 在行末插入
- o 在当前行后插入一个新行
- O 在当前行前插入一个新行
- cw 替换从光标所在位置后到一个单词结尾的字符
删除文本
- x Delete 删除游标所在的字符
- X 删除游标所在前一个字符
- dd 删除整行
- d^ 删除至行首
- d$ D 删除至行尾
- d1G 删除至文档首部
- dG 删除至文档结尾处
- 2dd 一次删除两行
退出Vim
- Shift+zz
命令模式
退出Vim
- :q 退出
- :wq 退出并保存
- :q! 强制退出不保存
- :w 另存为
重复命令
- . 重复执行上次命令
- N 执行指定次数相同的命令
- dw daw (delete a word) 删除一个单词
- dnw 删除n个单词
游标的快速跳转
行间跳转
- gg 游标移动到第一行
- G 游标移动到最后一行
- nG 游标移动到第n行
行内跳转
- w 到下一个单词的开头
- e 到下一个单词的结尾
- b 到前一个单词的开头
- ge 到前一个单词的结尾
- 0 ^ 到行头
- $ 到行尾
- f<字母> 向后搜索<字母>并跳转到第一个匹配的位置字母>字母>
- F<字母> 向前搜索<字母>并跳转到第一个匹配的位置字母>字母>
- t<字母> 向后搜索<字母>并跳转到第一个匹配位置之前的一个字母字母>字母>
- T<字母> 向前搜索<字母>并跳转到第一个匹配位置之后的一个字母字母>字母>
剪切复制粘贴
剪切
- dd 剪切一行
复制 y
- yy 复制所在行
- nyy 复制n行
- y^ y0 复制至行首
- y$ 复制至行尾,含光标所在处字符
- yw 复制一个单词
- ynw 复制n个单词
- yG 复制至文本末
- y1G 复制至文本开头
粘贴
- p 粘贴至光标后(下)
- P 粘贴之光标前(上)
其它
- :set nu 显示序号
- Ctrl+o 快速回到上一次光标的所在位置
- ~ 将游标所在字母变成大写或小写
替换操作
- r<待替换字母> 将游标所在字母替换为指定字母待替换字母>
- R 连续替换,直到按下Esc
- cc 替换整行,即删除游标所在行,并进入插入模式
- cw 替换一个单词,即删除一个单词,并进入插入模式
- C 替换游标以后至行尾
- ~ 反转游标所在字母大小写
撤销操作
- u 撤销一次操作
- :u n 撤销n次操作
- U 撤销当前行的所有修改
- Ctl+r redo,即撤销undo的操作
缩进操作
- >> 整行向右缩进
- << 整行向左缩进
- :set shiftwidth? 查看缩进字数(可简写为sw)
- :set shiftwidth=n 设定缩进字数为n(可简写为sw)
调整文本位置
- :ce 本行内容居中
- :le 本行内容左对齐
- :ri 本行内容右对齐
快速查找
- / 向下查找(n表示继续查找,N表示反向查找)
- ? 向上查找(n表示继续查找,N表示反向查找)
- * 向下寻找游标所在处的单词(n表示继续查找,N表示反向查找)
- # 向上寻找游标所在处的单词(n表示继续查找,N表示反向查找)
- g* 向下寻找部分符合游标所在处的单词(n表示继续查找,N表示反向查找)【未验证】
- g# 向上寻找部分符合游标所在处的单词(n表示继续查找,N表示反向查找)【未验证】
编辑多个文件
- :n 编辑下一个文件,:n!强制转换
- :N 编辑上一个文件,:N!强制转换
进入Vim后打开新的文件
- :e <文件名> 打开新的文件文件名>
- :e# 回到前一个文件
- :ls 列出以前编辑的文件
- :b <编号><文件名> 直接进入编辑列表里的指定文件进行编辑文件名>编号>
- :bd<编号><文件名> 删除编辑列表里的指定文件文件名>编号>
- :e! <文件名> 放弃正在编辑的文件,新打开文件文件名>
- :f 显示正在编辑的文件名
- :f <文件名> 改变正在编辑文件的文件名文件名>
恢复文件
- vim -r 进入文档后输入 :ewcover <文件名>来恢复文件名>
可视模式
- v 进入字符选择模式,再次按下v后取消选择
- Shift+v 进入行选择模式i,再按一次Shift+v取消选择
- Ctrl+v 进入矩形区域选择模式,再按一次Ctrl+v取消选择
- d 删除所选区域的内容
- y 复制所选区域的内容
视窗操作
- new Ctrl+w 打开新的VIm视窗
- :sp <文件名> 打开新的横向视窗编辑指定文件文件名>
- :vsp <文件名> 打开你新的纵向视窗编辑指定文件文件名>
- Ctrl+w s 将当前窗口分割成两个水平的窗口
- Ctrl+w v 将当前窗口分割成两个垂直的窗口
- Ctrl+w q 即:q结束分割出来的视窗,如果在新视窗中有输入需要使用强制符! 即:q!
- Ctrl+w o 打开一个视窗并且隐藏之前的所有视窗
- Ctrl+w j 移至下面视窗
- Ctrl+w k 移至上面视窗
- Ctrl+w h 移至左边视窗
- Ctrl+w l 移至右边视窗
- Ctrl+w J 将当前视窗移至下面
- Ctrl+w K 将当前窗口移至下面
- Ctrl+w H 将当前窗口移至左边
- Ctrl+w L 将当前窗口移至右边
- Ctrl+w – 减小视窗的高度
- Ctrl+w + 增加窗口的高度
Vim功能设定
- vim配置文件 ~/.vimrc
- :set nu 显示行数
- :set :se 显示所有修改过的配置
- :set all 显示所有设定值
- :set option? 显示option的设定值
- :set nooption 取消当前设定值
- :set autoindent(ai) 设定自动缩进
- :set autowrite(aw) 设定自动存档,默认未打开
- :set background=dark light 设置背景风格
- :set backup(bk) 设置自动备份,默认未打开
- :set cindent(cin) 设置C语言风格缩进
在Vim执行外部命令
- :!ls 显示当前目录的内容
- :!rm <文件名> 用于删除指定文件文件名>
- :w <文件名> 将当前Vim中正在编辑的文件另存为指定文件文件名>
查看帮助
- F1 打开Vim预设的帮助文档
- :h shiftwidth 打开名为shiftwidth的帮助文件
- :ver 显示版本及参数
创建加密文件
- vim -x <文件名> 设置密码后,下一次打开需再次输入密码文件名>