Chinaunix首页 | 论坛 | 博客
  • 博客访问: 244637
  • 博文数量: 21
  • 博客积分: 493
  • 博客等级: 下士
  • 技术积分: 308
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-05 12:21
文章分类

全部博文(21)

文章存档

2013年(1)

2012年(20)

分类: LINUX

2012-10-15 18:16:59

Vi有三种基本的模式:指令模式,文本输入模式,行末模式
i,I,o,O,a,A,r,R都可进入编辑模式

在一般模式中,输入: / ?都可以进入指令模式。

 
复制、粘贴、删除
yy    复制
nyy    从当前行开始复制n行
p    粘贴到下一行
P    粘贴到上一行
D    当前光标删除到行尾
dd    剪切当前行
.        删除下一行
ndd    从当前行开始向后删除n行
dnG    删除第n行到当前行的数据
x    向后删除一个字符
nx    向后删除n个字符
X    向前删除一个字符
搜索
n    查找下一个
N    查找上一个
/str    从光标位置向下搜索
?str    从光标位置向上搜索
替换
:%s///g    替换(%全部替换,/gi忽略大小写)
:%s///gc    替换,需要用户一一确认
.,$s///g    当前位置到行尾替换
撤销
u    撤销
U    撤销当前行所有操作。
ctrl-r    重做

:e!     回复至文档原始状态
块操作
v    选中光标经过的字符
V    选中光标经过的行
ctrl-v    选中矩阵
y    复制被选中的数据
d    删除被选中的数据
多文件编辑
vim file1 file2    同时编辑file1 file2
:files    列出vim当前打开的文件列表
:n    编辑下一个文件
:N    编辑上一个文件
:sp file2(:split)  分屏显示file2  
vim -o file1 file2 垂直显示
vim -O file1 file2 水平显示
ctrl-w,j    向上切换窗口
ctrl-w,k    向下切换窗口
其他操作
set nu    设置行号
set nonu    取消行号
:r filename    将文件内容插入到光标位置下一行
:!command    暂时离开vi ,执行command
:r!command 将命令输入插入光标当前位置
插入
s    删除一个字符在当前位置编辑
i    在光标前插入
I    在行首插入
a    在光标后插入
A    在行末插入
o    在下一行插入
O    在上一行插入
r    输入替换光标位置字符
R    进入输入替换模式
~    大小写转换
保存
:w    保存
:w!    强制保存
:w filename    另存为
n1 n2 w filename    将第n1行,n2行另存为filename
退出
q    退出
q!    强制不保存退出
wq!    强制保存退出
:x    保存并退出
ZZ 若文档未改动,则直接离开,若改动,则保存后离开
光标移动
h    左
j    上
k    下
l    右
$    行尾
0    行首
G    文档结尾
gg    文档第一行
w    按单词后移
b     按单词前移
(      按句子前移
)      按句子后移
{      按段落前移
}      按段落后移
nG     光标到文档第n行
n    光标下移n行
n    光标后移n字符
n<左右方向键>    光标左右移动
pageup    向上翻页
ctrl-b    向上翻页
pagedown    向下翻页
ctrl-f    向下翻页
vim问题
vim的暂存档,救援恢复与开启时的警告讯息
当文档在编辑过程中意外中断了,再打开会出现上图所示警告提示,由于暂存盘的关系,因此vim会主动判断这个档案可能有些问题,警告提示中vim给了两点主要的问题与解决方案,分别是这样:

问题一:可能有其他人或程序同时在编辑这个档案:
由与 Linux 是多人多任务的环境,因此很可能有很多人同时在编辑同一个档案。如果在多人共同编辑的情况下, 万一大家同时储存,那么这个档案的内容将会变癿乱七八糟!为了避免这个问题,vim 会出现这个警告窗口! 解决的方法则是:

    1. 找到另外那个程序或人员,请他将该 vim 的工作结束,然后你再继续处理。
    2. 如果你只是要看该档案的内容并不会有任何修改编辑的行为,那么可以选择开启成为只读(O)档案

问题二:在前一个 vim的环境中,可能因为某些不知名原因导致 vim 中断 (crashed): 这就是常见的不正常结束 vim 产生的后果。
解决方案依据不同的情况而不同喔!常见的处理方法为:

    1.如果你之前的vim 处理动作尚未储存,此时你应该要按下『R』,亦即使用 (R)ecover 的项目, 此时 vim 会载入 xx.swp 的内容,让你自己来决定要不要储存!这样就能够救回来你之前未储存的工作。 不过那个 xx.swp 并不会在你结束 vim 后自动删除,所以你离开 vim 后还得要自行删除 .swp 才能避免每次打开这个档案都会出现这样得警告!

    2.如果你确定这个暂存盘是没有用的,那么你可以直接按下『D』删除掉这个暂存盘,亦即 (D)elete it 这个项目即可。 此时 vim 会载入要编辑的文件,并且将旧的 xx.swp 删除后,建立这次会使用的新的xx.swp 。
阅读(1639) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~