常用的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 |