vim 常用指令

其他命令

<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:将树改为根
posted @ 2017-11-30 21:56  Ajanuw  阅读(240)  评论(0编辑  收藏