个人使用VIM的一些总结
这两天闲着都在捣鼓VIM了,感觉有点不务正业了,不得不说VIM里面要学习的东西太多了,学习曲线无比陡峭。知识点多了有点乱,特地发个博梳理一下,都是我自己在学习过程中积累的一些,可能有点杂,凑合着看吧,轻拍,欢迎提问一起探讨。
一、vim介绍与常用命令
这个就不说了吧,自行google,贴一张VI/VIM键盘图,要学习的拿去当桌面吧,哈哈。
二、vim各版本区别
ubuntu下预装的版本是vim.tiny,这个更靠近纯vi了,不能使用小键盘和方向键,在编辑模式下,移动光标会变成A B C D等字符并换行。
解决方法两个;
1.vim缺省是vi兼容模式,设置成不兼容模式就好了:
:set nocp
2.安装完整VIM
VIM其他版本:vim-gnome安装的vim依赖于gnome的某些东西的。vim-gtk 依赖于gtk的某些东西。vim-nox这个不知道,ubuntu官网也没说明。还有一个vim-athena,据说是界面很华丽,没用过不评论。具体看http://packages.ubuntu.com/oneiric/vim
三、vim缓冲区
缓冲区(Buffer)是一块内存区域,里面存储着正在编辑的文件。如果没有把缓冲区里的文件存盘,那么原始文件不会被更改。
:buffers
命令将会列出当前编辑中所有的缓冲区状态。在这个状态列表中,前面的数字是缓冲区的数字标记,第二个标记就是缓冲区当前的状态,紧接着是与缓冲区所关联的文件名。有如下几种状态:
- (非活动的缓冲区)
a (激活缓冲区)
h (隐藏的缓冲区)
% (当前的缓冲区)
# (交换缓冲区)
= (只读缓冲区)
+ (已经更改的缓冲区)
:buffers |
列示缓冲区状态 |
:buffer |
编辑指定缓冲区 |
:ball(ba默认水平分屏) |
编辑所有缓冲区 |
:bnext(bn) |
到下一缓冲区 |
:bprevious(bp) |
到前一缓冲区 |
:blast |
到最后一个缓冲区 |
:bfirst |
到第一个缓冲区 |
:badd |
增加缓冲区 |
:bdelete |
删除缓冲区 |
:bunload |
卸载缓冲区 |
CTRL-W- 减小窗口,默认值为1
CTRL-W= 可以将几个窗口的大小变得相等。
:tabnext : 到下一个标签页。
:tabc: close a tab
Linux
[Linux]VI相关操作
About vi
vi编辑器学习
vi编辑器有三种模式:命令模式、输入模式和末行模式。无论在任何模式下按【Esc】都可以返回到命令模式。
1、vi
直接输入vi可以查看vi的版本信息
2、vi [文件名]
若存在该文件,则打开存在文件;若不存在,将新建文件名为[文件名]的文件。
3、保存与退出
在“末行命令”中输入以下内容并按【Enter】可以执行不同的操作:
:q! 强制退出
:w 保存
:w [文件名] 另存为
:wq 保存并退出
:wq! 保存并强制退出
4、光标移动(命令模式)
在“命令模式”中除了光标可以移动光标之外,还可以使用以下命令
k 上
j 下
h 左
l 右
^ 移动到行首
$ 移动到行尾
[第n行]G 跳转到第n行
G 跳转到首行
5、翻页(命令模式)
Ctrl+F 向前翻一页
Ctrl+B 向后翻一页
Ctrl+U 向前翻半页
Ctrl+D 向后翻半页
6、显示行号(末行模式)
set nu 显示行号
set nonu 取消行号
7、编辑模式(命令模式)
a 附加命令
i 插入命令
o 打开命令
c 修改命令
r 取代命令
s 替换命令
Esc 退出命令
8、光标移动(输入模式)
Home 行首
End 行尾
Page Up 向前翻页
Page Down 向后翻页
Delete 删除光标位置的字符
9、删除操作(命令模式)
x 删除光标位置的字符
dd 删除光标所在行
dw 删除当前字符到单词尾包括空格的所有字符
10、撤消操作(命令模式)
u 取消最近一次操作
U 取消所有操作
Ctrl+R 恢复对u命令的操作
11、复制操作(命令模式)
[n,m]y 复制第n行到第m行
[n]yy 复制n行,若无行数,只复制当前行
[n]yw 复制n个单词,若无行数,只复制光标到单词尾
y$ 复制光标到行尾
y^ 复制光标到行首
12、查找和替换(末行)
/[key] 从光标位置开始查找key
:s/old/new 用new替换首次出现的old
:s/old/new/g 用new替换行中出现的所有old
:[n,m] s/old/new/g 用new替换第n行到第m行中出现的old
: % s/old/new/g 用new替换所有的old
:s/old/new/c 用new替换首次出现的old,用户需要确认。[/c]适用上面所有命令
13、恢复文件
文件在编辑中会产生一个临时文件,文件以.开头并以.swp结尾。在异常退出的时候,系统在下一次编辑的时候会提示命令处理。
O 只读打开
E 继续编辑,不恢复.swp文件
R 恢复文件,继续编辑
Q 退出vi
D 删除.swp文件
vi -i [文件名] 恢复.swp文件
//博客也很久没有更新了。记得上次面试官问我,为什么博客那么久没有更新。或者事情太多,或者人懒。前端时间找工作让我很困惑也很迷茫。甚至忘记了自己原本追求的是什么。终于进了一家一直很想进的公司,但是也不见得有多令人兴奋。难道大四要毕业了,人就变得伤感起来了么?
//近期学习Linux知识比较多,接下来的分享可能也会是关于Linux平台下的技术比较多。我觉得咱做技术的,还是要有写博客的习惯,一是为了提升巩固自己,一是方便自己以后查阅。
作者:Ron Ngai
出处:http://www.cnblogs.com/rond
关于作者:苦逼一枚。
欢迎转载,但未经作者同意须在文章页面明显位置给出原文连接
如有问题,可以通过rondsny@gmail.com 联系我,非常感谢。