Vim常用命令
我汇总的一些vim常用的指令和按键操作,和一些NERDTree菜单插件的命令,尤其是NERDTree,这个vim插件装上之后,感觉完全可以把vim当IDE来用,实在是我辈码农的装逼利器。
1. 功能指令
| 按键 | 解释 |
|---|---|
| :q! | 不保存并推出 |
| :wq | 保存并退出 |
| :x | 保存并退出 |
| :w | 保存 |
| :w b.txt | 另存为b.txt |
| :set nu | 显示行号 |
| Ctrl+w+h | 多窗口编辑跳转; h,l,j,k |
| :close | 关闭当前窗口 |
| :split sec.txt | 水平分割窗口打开新文件 |
| :vsplit se.txt | 垂直分割窗口 |
| :!ls | 执行shell命令 |
2. 插入模式按键
| 按键 | 解释 |
|---|---|
| a | 当前光标的后面 |
| A | 当前段落的段尾 |
| i | 当前光标的前面 |
| I | 当前段落的段首 |
| o | 当前行的后面创建空白行 |
| O | 当前行的前面创建空白行 |
3. 光标操作
| 按键 | 解释 |
|---|---|
| h | 左移一位 |
| j | 下移一行 |
| k | 上移一行 |
| l | 右移一位 |
| gg | 移到文件首行 |
| G | 移动文件末尾 |
| nG | 移到第n行 |
| ^ | 移到当前行的首字符 |
| $ | 移到当前行的尾字符 |
| fx | 移动到当前行的下一个x字符处 |
| Fx | 移动到当前行的上一个x字符处 |
| W | 向右移动一个单词 |
| nw | 向右移动n个单词 |
| b | 向左移动一个单词 |
| nb | 向左移动n个单词 |
| :n | 移动到第n行 |
| n | 往下移动n行 |
| Ctrl+f | 往下移动一页 |
| Ctrl+b | 往上移动一页 |
| Ctrl+d | 往下移动半页 |
| Ctrl+u | 往上移动半页 |
4. 编辑文档
| 按键 | 解释 |
|---|---|
| x | 向后删除一个字符 |
| X | 向前删除一个字符 |
| dd | 删除一行 |
| ndd | 删除n行 |
| d$ | 删除光标至行尾的内容 |
| dw | 删除一个单词 |
| J | 删除换行符,两行合并成一行 |
| u | 撤销上一步操作 |
| Ctrl+r | 重做操作 |
| rx | 将光标当前字符替换为x |
| yy | 复制当前行 |
| nyy | 复制连同光标所在行内的n行文字 |
| p | 黏贴至当前行之后 |
| P | 黏贴在当前行之前 |
5. 查找替换
| 按键 | 解释 |
|---|---|
| / | /find n跳转到下一个匹配处N上一个 |
| ? | ?find N跳转到下一个匹配处n上一个 |
| : s/root/admin/ | 当前行第一个出现的root替换为admin |
| : s/root/admin/g | 当前行中出现的所有root替换为admin |
| : 3,5 s/sbin/bin/g | 第三行至第五行之间的所有sbin替换为bin |
| : 1,$s/word1/word2/g | 将第1行到最后一行的所有world1替换为world2 |
| : %s/nologin/fault/g | 将所有行的nologin替换为fault |
6. NERDTree命令
| 按键 | 解释 |
|---|---|
| :NERDTree 显示目录树 | |
| :tabnew [++opt选项] [+cmd] 文件 | 建立对指定文件新的tab |
| :tabc | 关闭当前的 tab |
| :tabo | 关闭所有其他的 tab |
| :tabs | 查看所有打开的 tab |
| :tabp | 前一个 tab |
| :tabn | 后一个 tab |
| ctrl+w | 光标自动在左右侧窗口切换 |
| ctrl + w + h | 光标 focus 左侧树形目录 |
| ctrl + w + l | 光标 focus 右侧文件显示窗口 |
| ctrl + w + w | 光标自动在左右侧窗口切换 |
| ctrl + w + r | 移动当前窗口的布局位置 |
| gT | 前一个 tab |
| gt | 后一个 tab |
| o | 在已有窗口中打开文件、目录或书签,并跳到该窗口 |
| go | 在已有窗口 中打开文件、目录或书签,但不跳到该窗口 |
| t | 在新 Tab 中打开选中文件/书签,并跳到新 Tab |
| T | 在新 Tab 中打开选中文件/书签,但不跳到新 Tab |
| i | split 一个新窗口打开选中文件,并跳到该窗口 |
| gi | split 一个新窗口打开选中文件,但不跳到该窗口 |
| s | vsplit 一个新窗口打开选中文件,并跳到该窗口 |
| gs | vsplit 一个新 窗口打开选中文件,但不跳到该窗口 |
| ! | 执行当前文件 |
| O | 递归打开选中 结点下的所有目录 |
| x | 合拢选中结点的父目录 |
| X | 递归 合拢选中结点下的所有目录 |
| e | Edit the current dif |
| 双击 | 相当于 NERDTree-o |
| 中键 | 对文件相当于 NERDTree-i,对目录相当于 NERDTree-e |
| D | 删除当前书签 |
| P | 跳到根结点 |
| p | 跳到父结点 |
| K | 跳到当前目录下同级的第一个结点 |
| J | 跳到当前目录下同级的最后一个结点 |
| k | 跳到当前目录下同级的前一个结点 |
| j | |
| C | 将选中目录或选中文件的父目录设为根结点 |
| u | 将当前根结点的父目录设为根目录,并变成合拢原根结点 |
| U | 将当前根结点的父目录设为根目录,但保持展开原根结点 |
| r | 递归刷新选中目录 |
| R | 递归刷新根结点 |
| m | 显示文件系统菜单 |
| cd | 将 CWD 设为选中目录 |
| I | 切换是否显示隐藏文件 |
| f | 切换是否使用文件过滤器 |
| F | 切换是否显示文件 |
| B | 切换是否显示书签 |
| q | 关闭 NerdTree 窗口 |
| ? | 切换是否显示 Quick Help |