vim 常用指令

其他命令

<c-L>  重绘屏幕
<c-z>  挂起vim回到shell,想继续vim只需要输入 fg
<c-x-f>  文件路径提示
<c-N>  当前文件中的关键字提示
<C-X><C-O>  语义上的补全

J 于下一行文本合并
%  在括号间跳转,配合v可以选中代码块
~ 光标下的字符转化为大写
gd 类似f12

VI//  为选中的行添加//注释
:66,70s/^/\/\/    66-70行添加  //注释
:66,70s/^\/\//   取消多行注释

:Ve  在左侧边栏打开当前文件的目录
enter  在当前窗口打开文件
o 打开一个水平分隔的窗口显示文件
v 打开一个垂直分隔的窗口显示文件
t 在一个新标签页中打开文件

:cd dirtory 切换到dirtory目录
:pwd 显示当前工作目录

:read index.html  读入文件的内容放在当前行的后面 
:! <bash 命令>  执行bash命令行
zt	重画,当前行置窗口顶端
zz	重画,当前行置窗口正中
zb	重画,当前行置窗口底端

字符查找

fa 查找当前行光标后的 a文本, ";"分号重复查找命令,","与";"相反
Fa 查找光标签前的a
3fa 查找当前行光标后的第3个a文本
还有 ta ,2ta,移动到a的前面

/word + 回车  从当前的行向下查找 n向下切, N向上切

N  *		向前查找光标下的标识符
N  #		向后查找光标下的标识符

光标移动

块级移动
 w跳到下一个word开头  e  跳到当前word结尾
 b跳到上一个word开头  ge跳到上一个word结尾  ctrl+ <

G     整个文档的最后一行
gg    整个文档的第一行行
3G 跳转到3行, G意为Go

H 当前page的第一行
M 当前page的中间行
L 当前文档的最后一行

N  zh		屏幕右滚 N 个字符
N  zl		屏幕左滚 N 个字符
N  zH		屏幕右滚半个屏宽
N  zL		屏幕左滚半个屏宽

删除文本

被删除的文本都可以用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]

撤销

N  u		撤销最近的 N 此改动
N  CTRL-R	重做最近的 N 个被撤销的改动
U		恢复最近被改动的行

缩进,对齐,折叠

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			打开光标下的折叠
zO			打开光标下的所有折叠

zR  打开所有折叠

编辑多个文件

从一个文件转到另一个文件
在不同文件之间复制粘贴

编辑另一个文件

:f {name}      设置当前文件名为name
:e !           重载当前文件
:e  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+^ 快速切换文件,但不改变你的位置

`"  上次你离开该文件时光标所在的位置
`.   最后一次对文件做出改动处的位置

文件标记

m        m{a-zA-Z}  用标记 {a-zA-Z} 记录当前位置
`a       `{a-z}	    至当前文件中的标记 {a-z}
``       ``	    至上次跳转之前的位置

保存一份原始文件

: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 -    减小

:q        关闭当前文件
:close    关闭当前窗口,阻止你关闭最后一个窗口
:only     关闭除当前窗口以外的窗口
:wa       保存所有窗口打开的文件
:qa       退出所有文件,有未保存的文件无法退出
:wqa      保存并退出所有窗口。

nerdtree 常用指令

vim ./

文件:
o: 在当前窗口打开
t:在新标签中打开文件
T:在新标签中静默打开文件
i: open split
s: open vsplit

目录:
O: 递归打开目录
t: 在新标签页中打开
T:在新标签页中静默打开

P:转到root目录
K:去第一个孩子
J:去最后一个孩子

r:刷新光标目录
C:将树改为根
:NERDTree
:NERDTreeToggle
posted @ 2017-11-30 21:56  Ajanuw  阅读(383)  评论(0编辑  收藏  举报
微信打赏
微信打赏
支付宝打赏
支付宝打赏
Paypal
Paypal