-
熟悉
VI
是学习
UNIX
系统的一个关口
vi
是
visual edit
的缩写
进入
vi
的命令
vi filename
:
打开或新建文件,并将光标置于第一行首
vi +n filename
:打开文件,并将光标置于第
n
行首
vi
+ filename
:打开文件,并将光标置于最后一行首
vi +/pattern filename
:打开文件,并
将光标置于第一个与
pattern
匹配的串处
vi -r filename
:在上次正用
p>
vi
编辑时发生系统崩溃,恢复
filen
ame
vi filename....filename
:打开多个文件,依次进行编辑
移动光标类命令
h
:光标左移一个字符
l
:光标右移一个字符
space
:光标右移一个字符
p>
Backspace
:光标左移一个字符
k
或
Ctrl+p
:光标上移一行
j
或
Ctrl+n
:光标下移一行
Enter
:光标下移一行
w
或
W
:光标右移一个字至字首
b
或
B
:光标左移一个字至字首
e
或
E
:光标右移一个字至字尾
)
:光标移至句尾
(
:光标移至句首
}
:光标移至段落开头
{
:光标移至段落结尾
nG
:光标移至第
n
行首<
/p>
n+
:光标下移
n
行
n-
:光标上移
n
行
n$$
:光标移至第
n
行尾
H
:光标移至屏幕顶行
M
:光标移至屏幕中间行
L
:光标移至屏幕最后行
0
:(注意是数字零)光标移至当前行首
$$
:光标移至当前行尾
屏幕翻滚类命令
Ctrl+u
:向文件首翻半屏
Ctrl+d
:向文件尾翻半屏
Ctrl+f
:向文件尾翻一屏
p>
Ctrl
+
b
;向
文件首翻一屏
nz
:将第
n
行滚至屏幕顶部,不指定
n
时将当前行滚至屏幕顶部。
插入文本类命令
i
:在光标前
I
:在当前行首
a
:光标后
A
:在当前行尾
o
:在当前行之下新开一行
O
:在当前行之上新开一行
r
:替换当前字符
< br>R
:替换当前字符及其后的字符,直至按
ESC
键
s
:从当前光标位
置处开始,以输入的文本替代指定数目的字符
S
:删除指定数目的行,并以所输入文本代替之
nc
w
或
nCW
:修改指定数目的字
nCC
:修改指定数目的行
删除命令
ndw
或
ndW
:删除光标处开始及其后的
n-1
个字
do
:删至行首
d$$
:删至行尾
ndd
:删除当前行及其后
n-1
行
x
或
X<
/p>
:删除一个字符,
x
删除光标后的,而<
/p>
X
删除光标前的
Ctrl+u
:删除输入方式下所输入的文本
搜索及替换命令
/pattern<
/p>
:从光标开始处向文件尾搜索
pattern
< br>?pattern
:从光标开始处向文件首搜索
patt
ern
n
:在同一方向重复上一次搜索命令
N
:在反方向上重复上一次搜索命令
:
s/p1/p2/g
:将当前行中所
有
p1
均用
p2
替代
:
n1,n2s/p1/p2
/g
:将第
n1
至
n2
行中所有
p1
均用
p2
替代
:
g/p1/s//p2/g
:将文件中所有
p1<
/p>
均用
p2
替换
选项设置
all
:列出所有选项设置情况
term
:设置终端类型
ignorance
:在搜索中忽略大小写
p>
list
:显示制表位
(Ctrl+I)<
/p>
和行尾标志(
$$)
number
:显示行号
report
:显示由面向行的命令修改过的数目
terse
:显示简短的警告信息
<
/p>
warn
:在转到别的文件时若没保存当前文件则显示
NO write
信息
nomagic
:允许在搜索模式中,使用前面不带
―‖
的特殊字符
nowrapscan
:禁止
vi
在搜索到达文件两端时,又从另一端
开始
mesg
:允许
vi
显示其他用户用
write
写到自己终端上的信息
保存退出命令
:
n1,n2 co n3
:将
n1
行到
n2
行之间
的内容拷贝到第
n3
行下
:
n1,n2 m n3
:将
n1
行到
n2
行之间的
内容移至到第
n3
行下
:
n1,n2 d
:将
n1
行到
n2
行之间的内容
删除
:
w
:保存当前文件
:
e filename
:打开文件<
/p>
filename
进行编辑
:
x
:保存当前文件并退出
:
q
:退出
vi
:
q!
:不保存文件并退出<
/p>
vi
:
!command
:
执行
shell
命令
command
:
n1,n2 w!command
:
将文件中
n1
行至
n2
行的内容作为
command
的输入并执行之,
若不指定
n1
,
p>
n2
,则表示将整个文件内容作为
comm
and
的输入
:
r!command
:将命令
command
的输出结果放到当前行
寄存器操作
:将当前行及其下
n
行的内容保存到寄存器?中,其中
?
为一个字母,
n
为一
个数字
:将当前行及其下
n
个字保存到寄存器?中,其中
?
为一个字母,
n
为一个数字
:将当前行及其下
n
< br>个字符保存到寄存器?中,其中
?
为一个字母,
n
为一个数字
:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一
个数字
ndd
:将当
前行及其下共
n
行文本删除,并将所删内容放到
1
号删除寄存器中。
进入
vi
vi test
离开
vi
:q!
< br>离开
vi,
并放弃刚在缓冲区内编辑的内容。
:wq
将缓冲区内的资料写入磁盘中,并离开
vi
。
:ZZ
同
wq
同
wq
:w
将缓冲区内的资料写入磁盘中,但并不离开
vi
。
:q
离开
vi,
p>
若文件被修改过,则会被要求确认是否放弃修改的内容,此指令可与
: w
配合
使用。
Vi
的操作模式
Vi
提供两种操作模式:
输入模式(
insert
mode
)
指令模式(
command
mode
)
当使用者进入
vi
后,既处于指令模式下,此刻键入任何字元皆被视为指令。
输入模式:
a(append)
游标之后加入资料。
A
该行之末加入资料
i
(insert)
游标之前加入资料
I
该行之首加入资料
o (open)
新增一行与该行之下供输入资料
O
新增一行与该行之上供输入资料
指令模式:
B
移动
移至该行第一个字符,若光标在
该行第一字符则光标移至上一行第一字符。
b
由游标所在位置之前一个字串的第一个字元
cc
删除整行,修改整行的内容。
D
以行为单位,删除游标在内后面的所有字符。
db
删除该行光标前字符
dd
删除该行
de
删除自光标开始后面的字符
<
/p>
d
加字符删除光标所在位置至字符之间的单
E
移至该行最后字符,若光标在该行最后字符则光标移至
下一行最后字符
e
由游标所在位置至该字串的最后一个字元
G
移至该档案的最后一行
h
向前移一个字元
j
向下移一个字元
k
向上移一个字元
0
移至该行之首
M
移至视窗的中间那行
L
移至视窗的最后一行
l
向后移一个字符
0
由游标所在位置该行的第一个字元
nG
移至该档案的第
n
行
n+
自游标所在位置
向后移
n
行至该行的第一字符
n-
自游标所在位置向前移
n
行至该行的第一字符
R
< br>进入取代状态,直到《
ESC
》为止
s
删除游标所在字元,并进入取代模式直到《
ESC
》
S
删除游标所在之该行资料,并进入输入模式直到《
ESC
》
w
由游标所在位置之下一个字串的第一个字元
x
删除游标所在该字元。
X
删除游标所在之前一字元。
r
用接于此指令之后的字元取代(
r
eplace
)游标所在字元
yy
yank
整行,使游标所在该行复制到记忆体缓冲区
显示该行之行号、档案名称、档案中最末之行号、游
标所在行号占
总行号之百分比
$$
由游标所在位置至该行的最后一个字元。
)由游标所在位置至下一个句子的第一个字元。
(由游标所在位置至该句子的第一个字元。
{
由游标所在位置至该段落的最后一个字元。
}
由游标所在位置至该段落的第一个字元
yank
和
delete
可将指定的
资料复制到记忆体缓冲区,而藉有
put
指令可将缓冲区内的资
料复制到荧幕上
例如:搬移一行:在该行执行
dd
游标移至目的地
执行
p
复制一行:在该行执行
yy
游标移至目的地
执行
p
视窗移动:
视窗往下卷一页
视窗往上卷一页
视窗往下卷半页
视窗往上卷半页
视窗往下卷一行
视窗往上卷一行
删除、复制及修改指令介绍:
d(d
elete)
、
c(change)
和
y(yank)
这一类的指令在
vi
中的指令格式为:
operation+scope=command
(
运算子
)
(范围)
运算子:
d
删除指令。
删除资料,但会将删除资料复制到记忆体缓冲区。
y
将资料(字组、行列、句子或段落)复制到缓冲区。
p
放置(
put
)指令,与
d
和
y
配合使用。可将最后
delete
或
< br>yank
的资料放置于游标所
在位置之行列下。
c
修改(
chan
ge
)指令,类似
delete
于
p>
insert
的组合。删除一个字组、句子等资料,并
插入新键入的
set all
< br>查看所有
set
选项
:set
显示当前
set
设置
:filetype on
通过
$$VIMRUNTIME/.
打开文件类型检测
ai/noai
自动缩进,新行与
前面的行保
持
—
致的自动空格
/
不自动空格
(
缺省<
/p>
) aw/noaw
自动写,转入
sh
ell
或使用:
n
编辑其他
文件时,当前的缓冲区被写入
/
不写
flash/noflash
在出错处闪烁但不
呜叫
(
缺省
)/
使用呜
叫而不闪烁
ic/noic
在查询及模式匹配时忽赂大小写
/
不忽
略大小写
(
缺省
)
lisp/nolist
在
编辑
li
sp
程序时设置自动空格以便排列文本
/
按前一行自动设置空格
magic/nomagic
p>
在
进行模式匹配时使用全部的特殊宁符
/<
/p>
将特殊宁符只限制于
和
< br>―$$‖ mesg/nomesg
允
许
/
不允许其他用户向终端上写东西
nu/nonu
屏幕左边显示行号
/
不显示行号
(
缺省
)
ro/noro
只读,除非明确设置为
:w
,否则不允许对文件改动
/
普通读/写模式
remap/noremap
允许将宏直接映射到已经编辑好的命令行中
(
缺
省
)
/求宏定义明确
showmatch
显示括号配对,当键入
< br>―]‖―)‖
时,高亮度显示匹配的括号/缺省不高亮
showmode
处于文本输入方式时加亮按钮条中的模式指
示器/缺省不指示当前模式
ts=n
将
TAB
键的跨度设置为
n
个宁符间距,
缺省为
8
warn/nowarn
对文本进行了新的
修改后,
离开
shell
时系统给出显示
(
缺省
) ws/nows
在搜索时如到达文件尾则绕回文件头
继续搜索
wrap/nowrap
长行显示自动折行
wm=n
保留空边,
n
为显示的最右边留出的
空白边的字符数
si smart
indent
括号自动对齐
fe=prc
设置汉字整字处理
augroup
显示已存在
auto
命令组
nobackup
取消自动备份
encoding=prc
设置汉字处理,否则
backspace
删除半个汉字
cindent
设置
C
格式缩进,缩进量是通过
shiftwidth
的值
,而
不是通过
tabstop
的值
p>
cino=string string
定义了特殊需求的
cindent
行为,参看
< br>:h
cinoptions-values :h
cinkeys
等
Linux
如何退出
VI
编辑器
2008-10-22 09:55:q
退出
:q!
强行退出(不存盘)
:qw or ZZ
存盘退出
用
ESC
键只能切换到命令状态
更加详细内容:
在
linux
底下最常使用的文书编辑器为
vi
,请问如何进入编辑模式?
在一般模式底下输入:
i, I,
a, A
为在本行当中输入新字符;(出现
–
Insert-
)
在一般模式当中输入:
o, O
为在一个新的一行输入新字符;
在一般模式当中输入:
r, R
为取代字符!(左下角出现
–
Replace-
)
如何由编辑模式跳回一般模式?
[Esc]
若上下左右键无法使用时,请问如何在一般模式移动光标?
h, j, k, l
若
[pagedown] [ pageup]
在一般模式无法使用时,如何往前或往后翻一页?
[Ctrl] + [f]
-
-
-
-
-
-
-
-
-
上一篇:惠普电脑经常会自动关机咋回事
下一篇:电脑显示器无信号的解决方法