一vi的操作模式
vi提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。在输入模式下,用户可输入文本资料。在指令模式下,可进行删除、修改等各种编辑动作。
在输入模式下,按Esc键切换到指令模式下。
在指令模式下,按输入指令(i、a、o等)进入输入模式。
二进入vi
$ vi filename
直接键入“vi + 所要编辑的文件名”,即可对指定的文件进行编辑。
如果指定的文件为新文件,则提示:“New file”,否则显示该文件的当前内容。
$ view filename
以只读方式打开文件filename
三指令模式
3.1进入输入模式
a 在当前游标之后输入
A 在当前行之末输入
i 在当前游标之前输入
I 在当前行之首输入
o 在当前行之下新增一行,并在新增行输入
O 在当前行之上新增一行,并在新增行输入
输入结束后,按Esc键退出输入模式。
3.2游标移动
h 向左移动一个字符
l 向右移动一个字符
j 向下移动一个字符
k 向上移动一个字符
b 左移一个单词,至词首
w 右移一个单词,至词尾
0 移到当前行行首
$ 移到当前行行尾
+ 移至下一行的行首
- 移至上一行的行首
H 移至视窗的第一行
M 移至视窗的中间一行
L 移至视窗的最后一行
G 移至该文件的最后一行
nG 移至该文档的第n行
n+ 下移n行
n- 上移n行
3.3视窗移动
*<Ctrl> + f 视窗下卷一页
*<Ctrl> + b 视窗上卷一页
<Ctrl> + d 视窗下卷半页
<Ctrl> + u 视窗上卷半页
* <Ctrl> + e 视窗下卷一行
* <Ctrl> + y 视窗上卷一行
3.4删除操作
x 删除游标所在字符
X 删除游标前一字符
dw 从游标当前位置开始向后删除一个单词
db 从游标当前位置开始向前删除一个单词
d0 从行首删除至当前游标位置
d$ 从游标当前位置删除至行尾
dd 删除游标所在行
D 同d$
3.5修改操作
s 修改游标所在字符,修改完成后按Esc键结束 S 修改整行内容,修改完成后按Esc键结束
r 替换当前游标所在字符
R 进入替换状态,直至按Esc键结束
cw 修改一个单词(从游标位置至词尾)
cb 修改一个单词(从词首至游标位置)
cc 修改整行内容,完成后按Esc键结束,同S c0 修改行首至游标位置的内容vi命令中哪一条是不保存退出
c$ 修改游标位置至行尾的内容
~ 游标所在字符大小写切换
3.6指令重复
在指令模式中,可在指令前面加入一个数字n,则该指令会重复执行n次。常用的重复操作有: nx 删除n个字符
ndd 删除n行
ns 修改n个字符
3.7取消前一动作(Undo)
u 撤消上一指令的结果
3.8查字符串
/字符串从当前游标向后查该字符串
?字符串从当前游标向前查该字符串
n 从当前游标向后查下一个字符串
N 从当前游标向前查下一个字符串
3.9查看编辑状况
<Ctrl> + g 显示正在编辑的文件名、当前游标所在行数、文件总行数、文件是否被修改
四保存与退出
:w 保存,但不退出
:
wq 保存并退出
:x 同:wq
:q 退出,如果当前文件没有保存,禁止退出
:q! 不保存退出
:w file1 将内容保存至文件file1中,注意:此时编辑的仍为原文件
:w! file1 将内容覆盖保存至文件file1中,如文件file1存在,:w file1将禁止执行
五环境设置
:set 显示已设置的环境状况
:set all 显示所有的环境设置选项
:set nu 显示行号
:set nonu 不显示行号
:
set ts = n 设置Tab键的长度为n
六执行指令
以下用具体的数字为例进行介绍,数字表示行数,游标所在行可用“.”代替,文件最后一行可用“$”代替。 : 10 , 20d 删除第10行至第20行的内容
:10d 删除第10行的内容
:%d 删除全部内容
: 10 , 20co30 将第10行至第20行的内容复制到第30行之后
: 10 , 20mo30 将第10行至第20行的内容移动到第30行之后
: 1 , $s/old/new 将第1行至最后一行中的old替换成new
: 1 , $s/^/new 将第1行至最后一行的内容前面插入new
: 10 将游标移至第10行
七重复指令
. 重复上一条指令
八切换到shell状态
:sh 切换到shell状态,exit返回
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论