vi编辑器.docx
- 文档编号:29877073
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:6
- 大小:18.86KB
vi编辑器.docx
《vi编辑器.docx》由会员分享,可在线阅读,更多相关《vi编辑器.docx(6页珍藏版)》请在冰豆网上搜索。
vi编辑器
VI编辑器
一、vi的基本概念:
模式
vi是一个文本编辑器,但他与今天流行的编辑器有所不同。
今日的编辑器不区分文本的输入和编辑,在一个状态下操作,用菜单、鼠标或是快捷键来输入命令,这就需要鼠标或特殊的键盘(比如带Alt键和Ctrl键)。
为了在各种千奇百怪的Unix系统中保持相同的行为,捆绑在Unix中的vi尽可能少的依赖设备,vi中的几乎所有的操作都只需要键盘,而且是只需要主键盘区。
但是主键盘区的字符太少,输入同一个x,既可能是删除命令,也可能是文本中的字符,如何判断。
这就取决于vi当时的状态,所以说vi是一个模式编辑器,同一输入在不同模式下有不同含义。
基本上vi可以分为三种状态,分别是命令模式(commandmode)、插入模式(Insertmode)和底行模式(lastlinemode),各模式的功能区分如下:
1. 插入模式(Insertmode) 在插入模式下的输入都解释为文本的内容。
也就是说,只有在Insertmode下,才可以做文字输入。
2. 命令模式(commandmode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insertmode,或者到lastlinemode。
在命令模式下的输入都解释为命令。
要做编辑修改,必须进入命令模式。
3. 底行模式(lastlinemode) 将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
不过一般把vi简化成两个模式,就是将底行模式(lastlinemode)算作命令行模式commandmode)的一种特殊形式。
在插入模式下,按「ESC」键可切换到命令模式,如果在命令模式下按「ESC」键则仍然保持命令模式,同时系统喇叭会发出哔的响声。
所以你完全可以多按几下「ESC」,确保处于命令模式。
二、vi的基本操作
1.进入vi
在系统命令提示符输入vi及文件名称后,就进入vi全屏幕编辑画面,例如:
$vimyfile
刚进入vi之后,是处于「命令行模式(commandmode)」,你需要切换到「插入模式(Insert mode)」才能够输入文字。
初次使用vi的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入vi后,先不要乱动,转换到「插入模式(Insert mode)」再说吧!
2.切换至插入模式(Insertmode)编辑文件
在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insertmode)」,这时候你就可以开始输入文字了。
3.Insert 的切换
您目前处于「插入模式(Insert mode)」,您就只能一直输入文字,如果您发现输错了字!
想用光标键往回移动,将该字删除,就要先按一下「ESC」键转到「命令行模式(command mode)」再删除文字。
4.退出vi及保存文件 在「命令行模式(commandmode)」下,按一下「:
」冒号键进入「Lastlinemode」,例如:
:
w(输入「w」将文章以指定的文件名保存):
wq(输入「wq」,存盘并退出vi):
q!
(输入q!
,不存盘强制退出vi)
三、命令行模式(commandmode)功能键
在命令行模式下,字符或是字符的组合就是命令,以下列出字符命令及其含义。
附加说明:
1.大小写是有区别的
2.光标有两种形式,一个闪动的方框表示处于命令行模式、字符下的短横线意味着在插入状态。
他总是在字符上闪动的位置称为光标的当前位置。
格式示例:
单独字符,例如i,表示按下键盘上的i键。
字符组合,例如ctrl+b,表示同时按下ctrl和b键。
nG,表示先输入一个数字n(或其他参数)再按下G。
同xx键,表示可以使用其它特殊功能键来代替,例如同home,就是可以用小键盘区的home键来完成。
(insert),表示该命令是insert的缩写。
此外,大小写是有区别的。
1.从插入模式切换为命令行模式 按「ESC」键。
2.切换进入插入模式
i--进入插入模式「insertmode」,从光标当前位置前面开始插入资料,光标及其后的内容自动向后移动,(insert)。
a--进入插入模式,从光标所在位置后面开始新增资料,光标及其后的内容自动向后移动,(append)。
o--进入插入模式,在光标所在行下新增一行,从行首开始输入文字。
注意,这是小写字母o,不是数字0。
(open)。
I--进入插入模式,从光标所在行的第一个非空白字符前面开始插入资料。
A--进入插入模式,从光标所在行最后面的地方开始新增资料。
O--进入插入模式,在光标所在行上方新增一行,从行首开始输入文字。
(Open)。
3.删除和替换
x -- 每按一次,删除光标所在位置的一个字符。
nx -- 表示删除光标所在位置及其后面的n个字符。
X -- 大写的X,每按一次,删除光标所在位置的前面一个字符。
nX -- 删除光标所在位置的前面n个字符。
dd -- 删除光标所在行。
ndd-- 从光标所在行开始删除n行。
s-- 删除光标所在字符,并进入输入模式。
S-- 删除光标所在的行,并进入输入模式。
r-- 修改光标所在字符,r後接著要修正的字符。
R-- 进入取替换状态,新增文字会覆盖原先文字,直到按[ESC]回到指令模式下为止。
4.复制
yw -- 将光标所在之处到字尾的字符复制到缓冲区中。
#yw --复制#个字到缓冲区
yy -- 复制光标所在行到缓冲区。
#yy-- 拷贝从光标所在的该行往下数n行文字。
p -- 将缓冲区内的字符贴到光标所在位置。
注意:
所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
5.回复和修改
u -- 如果您误执行一个命令,可以马上按下u,回到上一个操作。
按多次“u”可以执行多次回复。
cw -- 更改光标所在处的字到字尾处
c#w-- 表示更改#个字
6.Lastlinemode下命令
在使用lastlinemode之前,请记住先按ESC键确定您已经处于command mode下后,再按:
即可进入lastlinemode。
setnu 列出行号,会在文件中的每一行前面列出行号。
# -- #号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了。
w -- 可以将文件保存起来。
跟上文件名,可以存为别的文件。
q -- 就是退出。
q!
-- 不保存,强制离开vi。
qw-- 一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。
zz-- 功能与:
wq相同。
:
x-- 与:
wq相同
7.移动光标
vi可以直接用键盘上的光标来上下左右移动,如果你的键盘上有的话。
但正规的vi是用小写英文字母hjkl控制光标。
光标的移动可以输入参数。
vi的光标移动花样繁多。
灵活的使用,可以快速的在几百页的文档中来去自如。
(1)无参数的移动
h--光标左移,同left
j--光标下移,同down
k--光标上移,同up
l--光标右移,同down
ctrl+b--屏幕往“后”移动一页。
同PageUp
ctrl+f--屏幕往“前”移动一页。
同PageDown
ctrl+u--屏幕往“后”移动半页。
ctrl+d--屏幕往“前”移动半页。
H--移动到视窗的第一行(head)
M--移动到视窗的中间行(middle)
L--移动到视窗的最后行(leg)
0--移动到光标所在行的行首。
同Home,数字0也可。
^--移动到光标所在行的行首第一个非空白字符。
$--移动到光标所在行的行尾。
同End
w--移动到下个字的第一个字母(word)
e--移动到下个字的最后一个字母(end)
b--移动到上个字的第一个字母 (back)
G--移动到文章的最后。
(2)有参数的移动
nG -- 直接用数字n加上大写G移动到第n行
ctrl+g--列出光标所在行的行号。
n- -- 减号,移动到上一行的第一个非空白字元,前面加上数字可以指定移动到以上n行
n+ -- 加号,移动到下一行的第一个非空白字元,前面加上数字可以指定移动到以下n行
fx -- 往右移动到x字元上
Fx -- 往左移动到x字元上
tx -- 往右移动到x字元前
Tx -- 往左移动到x字元前
; -- 配合f&t使用,重复一次
-- 配合f&t使用,反方向重复一次
/string -- 往右移动到有string的地方
?
string -- 往左移动到有string的地方
n --配合/&?
使用,重复一次
N --配合/&?
使用,反方向重复一次
n( -- 左括号,移动到句子的最前面。
前面加上数字可以指定往前移动n个句子n) -- 右括号,移动到下个句子的最前面。
前面加上数字可以指定往后移动n个句子
句子由!
.?
三种符号来界定。
n{ -- 左括弧,移动到段落的最前面。
前面加上数字可以指定往前移动n个段落
n} -- 右括弧,移动到下个段落的最前面。
前面加上数字可以指定往后移动n个段落。
段落是以段落间的空白行界定。
nl -- 光标移到该行的第n个位置,如:
6l,24l。
8.组合而成的更多的编辑指令
这些编辑指令非常有弹性,基本上可以说是由指令与范围所构成。
例如dw是由删除指令d与范围w所组成,代表删除一个字d(elete)w(ord)。
指令列表如下:
d删除(delete)
y复制(yank)
p放置(put)
c修改(change)
范围可以是下列几个:
e光标所在位置到该字的最後一个字母
w光标所在位置到下个字的第一个字母
b光标所在位置到上个字的第一个字母
$光标所在位置到该行的最後一个字母
0光标所在位置到该行的第一个字母
)光标所在位置到下个句子的第一个字母
(光标所在位置到该句子的第一个字母
}光标所在位置到该段落的最後一个字母
{光标所在位置到该段落的第一个字母
它们提供更多编辑文字的能力。
值得注意的一点是删除与复制都会将指定范围的内容放到暂存区里,然後就可以用指令p贴到其它地方去,这是vi用来处理区段拷贝与搬移的办法。
某些vi版本,例如Linux所用的elvis可以大幅简化这一坨指令。
如果稍微观察一下这些编辑指令就会发现,其实是定范围的方式有点杂,实际上只有四个指令罢了。
v 只要按下v键,光标所在的位置就会反白,然後就可以移动光标来设定范围,接著再直接下指令进行编辑即可。
对於整行操作,vi另外提供了更方便的编辑指令。
dd -- 删除整行文字;
cc -- 可以修改整行文字;
yy -- 复制整行文字;
D -- 可以删除光标到该行结束为止所有的文字。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vi 编辑器