其他命令
<c-L> 重绘屏幕
<c-z> 挂起vim回到shell,想继续vim只需要输入 fg
<c-x-f> 文件路径提示
<c-N> 当前文件中的关键字提示
<C-X><C-O> 语义上的补全
:e main.html 更改文件名
:file main.html 更改正在编辑的文件名,不用保存
J 于下一行文本合并
ZZ 保存退出
% 在括号间跳转,配合v可以选中代码块
~ 光标下的字符转化为大写
gd 类似f12
VI// 为选中的行添加//注释
:66,70s/^/// 66-70行添加 //注释
:66,70s/^/// 取消多行注释
:Ve 在左侧边栏打开当前文件的目录
enter 在当前窗口打开文件
o 打开一个水平分隔的窗口显示文件
v 打开一个垂直分隔的窗口显示文件
t 在一个新标签页中打开文件
:edit . 显示当前目录的内容
:cd dirtory 切换到dirtory目录
:pwd 显示当前工作目录
:read index.html 读入文件的内容放在当前行的后面
字符查找
fa 查找当前行光标后的 a文本, ";"分号重复命令,","与";"相反, Fa 查找光标签前的a
3fa 查找当前行光标后的第3个a文本
还有 ta ,2ta,移动到a的前面
/word + 回车 从当前的行向下查找 n向下切, N向上切
* 在相同的单词之间跳转
光标移动
块级移动
w跳到下一个word开头 e 跳到当前word结尾
b跳到上一个word开头 ge跳到上一个word结尾 ctrl+ <
G 整个文档的最后一行
gg 整个文档的第一行行
3G 跳转到3行, G意为Go
H 当前page的第一行
M 当前page的中间行
L 当前文档的最后一行
删除文本
被删除的文本都可以用p取回来, put
x 删除当前光标下的字符("dl"的快捷命令)
X 删除当前光标之前的字符("dh"的快捷命令)
D 删除自当前光标至行尾的内容("d$"的快捷命令)
dw 删除自当前光标至下一个 word 的开头
db 删除自当前光标至前一个 word 的开始
diw 删除当前光标所在的 word(不包括空白字符)
daw 删除当前光标所在的 word(包括空白字符)
dG 删除当前行至文件尾的内容
dgg 删除当前行至文件头的内容
上面的d命令都可以用 c,y代替
4x 删除4个文字
cw 删除word并进入插入模式
dd 删除一行,
d$ 删除到行尾的内容, d^
cc 改变整行
替换
R 输入的文字会替换光标下的文字
<Insert>键可以再 i 和 R 模式之间切换
<BS> 退格键可以撤销替换
ra 把光标下的文字替换为a
4ra 把四个替换为a
r<Enter> 替换为一个换行符
:%s/name/ajanuw/g 默认执行全部name替换为ajanuw
:%s/name/ajanuw/gc 每执行一次都需要同意,还是跳过
:1,5s/this/that/g 第 1 到第 5 行的文本执行替换操作,包括第 1 行和第 5行
复制粘贴
yy 复制当前行
yw 复制一个word
p 粘贴到光标后
P 粘贴到光标前
"*yy 复制
"*p 粘贴
"ay复制 "ap 粘贴,寄存器的名字为[a-z]
撤销
u 撤销
U 块级撤销
ctrl+r 返回上一步
缩进,对齐,折叠
gg=G 是一个自动缩进的命令
== 整理当行
= 整理选中的行
:>> 设置缩进 http://vim.wikia.com/wiki/Shifting_blocks_visually
:<<
zf} 折叠代码 Docs: https://www.2cto.com/os/201203/122133.html
zc 开合折叠 https://vim.fandom.com/wiki/Folding
zo 展开代码
编辑多个文件
从一个文件转到另一个文件
在不同文件之间复制粘贴
编辑另一个文件
:edit foo.txt 关闭当前文件,打开指定文件,当前文件未保存会出现错误信息
:e! foo.txt 缩写,强制打开指定文件
错误有对应的 ID 号, :help E37 查看错误帮助
同时打开多个文件
vi a.ts main.lisp
:files 查看打开所有的文件
:wn 保存在进入下一个文件
:wN 保存在进入上一个文件
:2n 向后移动2个文件
:first 第一个文件
:last 最后一个文件
:args 当前处于哪个文件 a.ts [main.lisp]
:args a.ts b.ts 不用退出vim你可以定义新的编辑文件
:args *.lisp 打开所有lisp文件
ctrl+^ 快速切换文件,但不改变你的位置
`" 上次你离开该文件时光标所在的位置
`. 最后一次对文件做出改动处的位置
文件标记
mC 在当前位置添加标记,C是寄存器名,可以替换
`C 跳到标记处
保存一份原始文件
:set patchmode=.orign
分页
简写 sp
:split 上下分页
:split index.html
:vsplit 左右分页
<c-w> 点击w在分屏中移动
// 移动窗口
CTRL-W H 到左边的窗口
CTRL-W J 到下面的窗口
CTRL-W K 到上面的窗口
CTRL-W L 到右边的窗口
<c-w 10 >> 增加当前屏幕的宽度 < 向右放大, > 向左放大,10代表次数
CTRL-W + 增加当前窗口高度
CTRL-W - 减小
:close 关闭当前窗口,阻止你关闭最后一个窗口
:only 关闭除当前窗口以外的窗口
:wall 保存所有窗口打开的文件
:qall 如果所有窗口打开的文件都已经保存,退出,如果有未保存的文件,跳转到对应的窗口中
:wqall 保存并退出所有窗口。
nerdtree 常用指令
vi ./
t:在新标签中打开文件
i: open split
s: open vsplit
r:刷新光标目录
C:将树改为根