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 | |