vim 常用指令

其他命令

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

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

:66,70s/^/\/\/    66-70行添加  //注释
:66,70s/^\/\//   取消多行注释

:read index.html  读入文件的内容放在当前行的后面 
:! <bash 命令>  执行bash命令行

字符查找

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

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

N  *		向前查找光标下的标识符(完全匹配)
N  #		向后查找光标下的标识符(完全匹配)

g*		类似 *(模糊匹配)
g#		类似 #(模糊匹配)

gd    转到本地声明
gD    转到global声明

块级光标移动

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

行级光标移动

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

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  查看错误帮助

文件标记

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      保存并退出所有窗口。

目录 和 Tab导航

vim .  打开当前目录

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

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

:tabnew file.txt    在新选项卡中打开 file.txt
:tabs               显示所有 tabs
{count}gt           转到标签页 {count}。 第一个标签页为数字 1
:tabclose         关闭当前标签

gt
:tabn[ext]          转到下一个选项卡

gT
:tabp[revious]      转到上一个选项卡

屏幕移动

<ctrl+y> 将屏幕上移一行
<ctrl+e> 将屏幕下移一行

<ctrl+u> 将屏幕上移半页
<ctrl+d> 将屏幕下移半页

<Page UP> 将屏幕上移一页
<ctrl+b> 和上面一样

<Page Down> 将屏幕下移一页
<ctrl+f> 和上面一样

zz    将当前行移到屏幕中间
zt    将当前行移到屏幕顶部
zb    将当前行移到屏幕底部
posted @ 2017-11-30 21:56  Ajanuw  阅读(469)  评论(0编辑  收藏  举报