vi的具体使用方法与命令

 

vi的使用:
#打开或新建filename文件,并将光标于第一行首
# vi filename

#打开文件filename,并将光标置于第n行首
# vi +n filename

#打开文件filename,并将光标置于最后一行首
# vi + filename

#打开文件filename,并将光标置于第一个与pattern匹配的首处
# vi +/pattern filename

#打开上次用vi编辑时发生系统崩溃的文件filename,并恢复它
# vi  -r filename

普通模式下的操作

进入插入模式:
命令      说明
i        从光标所在位置前开始插入文本
I        将光标移到当前行的行首,然后在其前面插入文本
a        用于在光标当前所在的位置之后追加新文本
A        将光标移到当前行的行尾,然后在从那里开始插入新文本
o        将在光标所在行的下面新开一行,并将光标置于该行的行首,等到输入文本
O        将在光标所在行的上面新开一行,并将光标置于该行的行首,等到输入文本

光标定位:
命令    说明
G     将光标移至最后一行行首   
nG    光标移至第n行首
n+    光标下移n行
n-    光标上移n行
n$    光标移至第n行尾
0     移动到光标所在行的行首    
$     移动到光标所在行的行尾
^     移动到光标所在行的第一个字符(非空格)
h,j,k,l 分别用于光标左移,下移,上移,右移一个字符
H     将光标移至当前屏幕首行的行首,即左上角
M     将光标移至当前屏幕显示文件的中间行的行首
L     将光标移至当前屏幕的最底行的行

:set nu 设置行号
:/findword 查找的单词

:%s/oldword/newword

#######################################

vi命令模式中可用的移动键:
h -------------- 将光标向左移一个字符
j -------------- 将光标向下移一个字符
k -------------- 将光标向上移一个字符
l -------------- 将光标向右移一个字符
w -------------- 将光标向前移一个单词
b -------------- 将光标向后移一个单词
e -------------- 将光标移到下一个单词之后
0 -------------- 将光标移到行首
$ -------------- 将光标移到行末
) -------------- 将光标移到下一句句首
( -------------- 将光标移到上一句句首
} -------------- 将光标移到下一段开始处
{ -------------- 将光标移到下一段开始处
shift+G -------- 将光标移到当前文档的底部
^ -------------- 将光标移到行内非空格的第一个字符
H -------------- 将光标移到屏幕上第一行
L -------------- 将光标移到屏幕上最后一行
[[ ------------- 将光标移到文档第一行
]] ------------- 将光标移到文档的最后一行
ngg ------------ 将光标移到文档的第n行
:n  ------------ 将光标移到文档的第n行

在vi中滚动屏幕:
z然后按回车 ---- 将光标所在的那一行移至屏幕顶部
z然后按"-" ----- 将光标所在的那一行移至屏幕底部
z然后按"." ----- 将光标所在的那一行移至屏幕中部
Ctrl+u --------- 向上滚动半屏
Ctrl+d --------- 向下滚动半屏
Ctrl+f --------- 向前滚动全屏
Ctrl+b --------- 向后滚动全屏
Ctrl+e --------- 向下滚动一行
Ctrl+y --------- 向上滚动一行


vi的文本编辑命令:
D -------------- 从光标定位的行末删除文本
dw ------------- 删除光标当前所在的单词
dd ------------- 行删除光标定位的当前行
ndd ------------ n代表即将删除的行数。例如5dd命令不仅会把当前行删除,还会把紧随其后的4行也删除
rc ------------- c代表字符。光标下方的字符将被替换为r后面的字符
R -------------- R后键入的文本将改写当前文本,从光标所在位置开始,一直到按下Escape返回命令模式为止
S -------------- 删除当前行,并开始在当前的空白行插入文本
x -------------- 删除光标下方的字符,并将字符右移填空
X -------------- 删除光标前的字符,并移动字符,令光标下方的字符来填空
~ -------------- 更改光标下方的字母的大小写
J -------------- 将当前行和前一行连接起来,并删除因此而来的空行


vi中的文件操作:
ZZ ------------- 保存对当前文件的更改,然后退出vi
:wq ------------ 保存对当前文件的更改,然后退出vi(和ZZ一样)
:w ------------- 保存对当前文件的更改
:w! ------------ 保存对当前文件的更改,如果有同名文件存在的话,就改写他
:q ------------- 退出vi。如果有未保存的更改,vi将发出抱怨,并"拒绝"退出
:q! ------------ 退出vi,即使还有尚未保存的更改。所有未保存的更改将被丢失
:e filename ---- 把指定文件载入vi进行编辑。如果指定文件不存在,将创建一个新文件
:e! ------------ 丢失所有更改,并从硬盘中重载已保存的文件
:sp filename - 将vi窗口划分为两部分,其中一部分显示新打开的文件,利用ctrl+ww在两个子窗口之间切换,利用该命令可以打开更多的子窗口


vi中的查找和替换命令
/pattern ------- pattern(样式)指代的是要查找的内容。vi将在文件中向前查找与指定内容匹配的第一样式
/ -------------- 重复上一次查找,在文件中查找下一个匹配样式
?pattern ------- pattern(样式)指代的是要查找的内容。vi将在文件中向后查找与指定内容匹配的第一样式
? -------------- 重复上一次查找,在文件中查找与上一次查找内容匹配的样式
% -------------- 把当前光标移至匹配的圆括号或方括号。对程序员来说,该命令非常有用
* -------------- 查找当前光标所在的单词
n -------------- 查找下一个
shift+n -------- 查找上一个
:s/pattern1/pattern2 -------------- 用pattern2替换当前行中与pattern1匹配的每个内容
:%s/pattern1/pattern2 ------------- 用pattern2替换整个文件中与pattern1匹配的每个内容


vi中的yank命令
yw ------------- 把光标当前所在的单词移到缓冲区
y$ ------------- 把当前行及其以前的所有文本移到缓冲区
yy ------------- 把当前行整行移到缓冲区
nyy ------------ n代表打算移到缓冲区的文本的行数。例如5yy将把当前行和紧随其后的4行移到缓冲区
p -------------- 粘贴
u -------------- undo,撤销上一次更改



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值