vim -r xxx.swap文件或者:recover恢复最新修改
:vsplit(vsp)左右分屏, :split(sp)上下分屏。ctrl+w+hjkl窗口切换。vim -on file1 file2水平, -On垂直
vimdiff file1 file2
1.查找替换
① : g/str1/s//str2/g (功能同1, $ s/str1/str2/g) 用字符串 str2 替换正文中所有出现的字符串 str1
: %s/str1/str2/gc
:s/str1/str2/g 同上
/text 向后搜索,?text 向前搜索
:g/str1 全局搜索
:n 搜索下一个,:N搜索上一个
② 光标在单词上,shitf + *可以查找下一个
2.删除
① 删除字符:x 删除后面的字符 X 删除前一个字符 删除3个字符就是3x
② 删除行:dd:删除一行 D 删除到行尾
③ 删除换行符:J:删除换行符,使下一行并上来。nJ:连接后面的n行
④ 删除所有:ggdG删除所有,dG删除到末尾,d0删除到行首
⑤ 删除指定范围:如果光标放在第一个s上,想删除到“(”为止,则输入dt(就可以了,t(的作用是跳到下一个"("前。
3.修改 && 撤销 && 插入
① 修改单词:caw (c 相当于 d 变为编辑模式)
② u:撤销上一次操作 , U:撤销当前行的所有修改
③ ctrl+r:对撤消的撤消,u撤销修改, U撤销所有修改,.重复最后一条修改正文的命令
④ i 在光标前插入,I 在行首插入,a 在光标后插入,A 在行末插入,o:在当前行的下面另起一行,并变为插入模式,
O:在当前行上面另起一行,变为插入模式
⑤ Ctrl+o:临时变成命令模式(一次而已)<-->:e!:放弃更改,然后相当于重新打开<-->:help:帮助,可用ZZ退出帮助窗口
⑥ :ab hw hello world 用一个缩写字符串代替一个长的字符串,此处用 hw 代替 hello world
⑩ ctrl +n 自动补全 ctrl + p 也一样(同windows的tab自动补全)
① 复制单词:yiw(yank inner world)复制当前档次, yw只是复制当前单词光标至结尾的部分
② nyy复制n行,也可以在首行输入ma获得一个标记a, 然后最后一行输入y'a即可复制中间所有行,p粘贴
③ :10,20y 回车即可,相应的删除也是如此 :10,20d (此方法比上面两种方法更简单)
:10,20 m 30 把10行到20行的内容,剪切到30行之后
:10,20 co 30 把10行到20行的内容,复制到30行之后
④ p粘贴到下面一行或光标右侧, P粘贴到上面一行或者光标左侧
其它:
① v进入视图编辑, ctrl+v进入列编辑
②:gg=G 代码自动对齐(gg表示第一行,G第二行)
③ 退出 ESC == ctrl + o == ctrl + c == ctrl + [
④ wq == ZZ