常用的Vim功能
三种模式
- Normal模式
- Insert模式
- Visual模式
模式直接的切换
退出编辑模式:
Esc键
Shift键 + : 键
w :保存文件但不退出
w file :将修改另外保存到file中,不退出
w! :强制保存,不推出
wq :保存文件并退出
wq! :强制保存文件,并退出
q :不保存文件,退出vi
q! :不保存文件,强制退出vi
e! :放弃所有修改,从上次保存文件开始再编辑
三种模式下的常见命令
1. Normal模式
- 1、
- 2、
摘要 : Vim是一个很好的编辑器,但是由于快捷键多、难以一次记全,常常另初学者感觉无从下手。
下面整理了一个《常用vim - source Insight快捷键对照表》,不求大而全,只求覆盖最简单最常用的几十条命令,只要你会用source Insight,完全可以在10分钟内对着这张表无缝切换到vim。初学者只需掌握表中加粗的26个重要命令,即可在vim中看代码写代码。
vim环境配置 : 参考《手把手教你把Vim改装成一个IDE编程环境Ver.0.7.pdf》
一、如何添加tags
步骤1:在代码根目录进入vim .
步骤2:先按F4,回车。(指定根目录)
步骤3:按F3,然后输入某个要添加的仓的路径
步骤4:回车(确定)
步骤5:F4(更新tags)
步骤6:以后修改了代码,就只使用F4更新就可以了。
二、快捷键对照表
| vim快捷键(注意区分大小写) | 说明 | SI对应快捷键 | ||
|---|---|---|---|---|
| 第一层级 -- 存活 | ||||
| 上下左右移动光标 | k、j、h、l | (移动鼠标即可) | ||
| 打开“文件目录” | F7 | Ctrl+o | ||
| 打开“symbol列表” | F8 | Alt+F8 | ||
| 将光标在各个窗口中跳转 | Ctrl + w + w | 其他方式:Ctrl + w + l 向右跳转, Ctrl + w + h 向左跳转,Ctrl + w + k 向上跳转,Ctrl + w + j 向下跳转 | ||
| 查找文件 | 空格 + p +(输入你想查找的文件名) | 在“文件目录”中查找 | ||
| 打开最近文件 | 空格 + m | 按q退出该窗口 | 菜单栏选择“window”,在下拉菜单中选择 | |
| 打开当前文件所在目录 | , + n + f(手速要快) | |||
| 当前位置插入一个字符 | i | |||
| 当前位置后面插入一个字符 | a | |||
| 在下方插入一行 | o | |||
| 在上方插入一行 | Shift + o | Ctrl + i | ||
| 删除一个字符 | x | |||
| 剪切 | d | Ctrl + x | ||
| 剪切一整行/删除一整行 | dd | Ctrl + u | ||
| 复制 | y | Ctrl + c | ||
| 复制一整行 | yy | Ctrl + k | ||
| 粘贴 | p | Ctrl + v | ||
| 撤销 | u | Ctrl + z | ||
| 反撤销 | Ctrl + r | Ctrl + y | ||
| 选中当前行 | Shift + v | |||
| 退出当前窗口 | :q | |||
| 保存退出 | :wq | 或Shift + z + z | ||
| 不保存退出 | :q! | |||
| 退出全部窗口 | :qa | |||
| 第二层级 - 能写代码 | ||||
| 查找(并高亮下划线) | / + 输入你想查的字符 + Enter | 查找之后,可以按n或N向下/上寻找第二、第三次出现该单词的地方 | Ctrl + f | |
| 取消高亮 | :nohl | |||
| 向上查找当前单词 | #(相当于Shift + 3) | F3 | ||
| 向下查找当前单词 | *(相当于Shift + 8) | F4 | ||
| 转到定义 | Ctrl + ] | 鼠标左键单击,或F7 | ||
| 后退 | Ctrl + o | Alt + . | ||
| 前进 | Ctrl + i | Alt + , | ||
| 按块编辑(选中某一段文字) | v +(移动光标) | 按v,会进入visual模式,可以按块进行编辑->ydp | ||
| 注释选中代码 | backspace | 如果注释多行,可以先按下行数,再按Backspace | Shift + Alt + m | |
| 格式化代码 | = | 按v,进入visual模式,然后选择块,再格式化 | ||
| 高亮一个单词 | mm | Shift + F8 | ||
| 取消全部高亮 | mn | |||
| 查找symbol符号(函数名、枚举、宏)出现的地方 | 在当前单词处按下Ctrl + \ + e ;(或 :cs f e + 要查找的symbol) | Ctrl + \ + e 的意思是先按ctrl+\,然后再按下e键 | Ctrl + / | |
| 开启/关闭刚才的查找窗口 | ,, | |||
| 查找func都被谁调用 | 在当前单词处按下Ctrl + \ + c;(或:cs f c + 要查找的函数) | |||
| 至此,在vim里干活已经不存在障碍 | ||||
| 第三层级 -- 感觉良好 | ||||
| 按单词向后跳转 | w | e也可以实现类似效果。和w相比,e是移动到该单词尾,w是移动到下一单词头 | ||
| 按单词向前跳转 | b | |||
| 跳转到当前行某个字母 | f + (要跳转的字母),然后按; 可以跳到下一处出现该字母的地方 | |||
| 移动到句尾 | $(也就是Shift + 4) | |||
| 移动到句头 | ^(也就是Shift + 6) | |||
| 移动到行头 | 0 | |||
| 到上一行非空行头 | - | |||
| 从当前位置向上移动xxx行 | 空格 + k + (输入要跳转的行上高亮的字母) | |||
| 从当前位置向下移动xxx行 | 空格 + j + (输入要跳转的行上高亮的字母) | |||
| 替换当前单词 | cw + (输入替换后的字符)+ESC | |||
| 跳转到xxx行(xxx是行号) | 行号 + G(注意G大写,相当于“行号 + Shift + g”) | 例如:1314G →跳到第1314行 | Ctrl + g | |
| 锁屏 | Ctrl + s | 如果突然发现vim卡住了,可以看看是不是按了Ctrl + S锁屏了 | ||
| 解锁 | Ctrl + q | |||
| 临时关闭vim界面 | Ctrl + z | |||
| 回到刚才的vim界面 | fg | |||
| 往下半个屏幕 | Ctrl + d | |||
| 往上半个屏幕 | Ctrl + u | |||
| 往下一个屏幕 | Ctrl + f | (Page Down) | ||
| 往上一个屏幕 | Ctrl + b | (Page up) | ||
| 跳转到文件头 | gg | |||
| 跳转到文件尾 | G | Ctrl + End | ||
| 移动光标到屏幕的首行. | H | |||
| 移动光标到屏幕的中间一行. | M | |||
| 移动光标到屏幕的尾行. | L | |||
| 使用z重新定位屏幕命令:把当前行移动到屏幕顶部 | z + 回车 | |||
| 把当前行移动到屏幕中央,不用回车,切记 | z.(或者zz) | |||
| 把当前行移动到屏幕底部,同上,不用回车 | z- | |||
| 移动第100行到屏幕的顶部,记得键入100z之后要再回车 | 100z + 回车 | |||
| 跳到 上一次编辑的地方 | g; | |||
| 跳到 下一次编辑的地方 | g, | |||
| 自动补全 | Ctrl + n | Ctrl + e | ||
| 匹配左括号 : | % | Ctrl + Shift + ] | ||
| 匹配右括号 : | % | Ctrl + Shift + [ | ||
| 行首插入 | shift + i | |||
| 行尾插入 | Shift + a | |||
| 向右/左缩进 | < 或 > | tab 或 shift + tab | ||
| 全部变成大写 | gU | |||
| 全部变成小写 | gu | |||
| 左侧NERD_TREE回上级目录 | NerdTree 界面按 x | |||
| 可以直接以当前目录来显示为根目录 | NerdTree 界面按 <Shift+c> | |||
| 以空行为单位移动到上一个空行区域 | } | |||
| 以空行为单位移动到下一个空行区域 | { | |||
| 竖屏分割 | :vs (vertical split缩写) | |||
| 横屏分割 | :sp (split缩写) | |||
| 第四层级 -- 组合用法示例 - 按块操作 | ||||
| 1. 去除一行前的空格,并按块操作 | Ctrl + v | |||
| jjj(添加多少行就输入几个j) | ||||
| ^ | ||||
| h | ||||
| x | ||||
| ESC | ||||
| 2. 在一行前插入某个字符,并按块操作 | Ctrl + v | |||
| jjj(添加多少行就输入几个j) | ||||
| I | ||||
| (写入要写的东西,如“virtual”) | ||||
| ESC | ||||
| 3. 在一行末尾插入某个字符,并按块操作 | Ctrl + v | |||
| jjj(添加多少行就输入几个j) | ||||
| $ | ||||
| A | ||||
| (写入要写的东西,如“end”) | ||||
| ESC |