vi操作命令
- 格式:pdf
- 大小:126.94 KB
- 文档页数:3
vi操作命令
Vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在Dos上⼀样。它可以执⾏输出、删除、查找、替换、块操作等众多⽂本
操作,⽽且⽤户可以根据⾃⼰的需要对其进⾏定制,这是其他编辑程序所没有的。
Vi不是⼀个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进⾏编排,它只是⼀个⽂本编辑程序。
Vi没有菜单,只有命令,且命令繁多。Vi有三种基本⼯作模式:命令⾏模式、⽂本输⼊模式和末⾏模式。
命令⾏模式 (command mode/⼀般模式)
任何时候,不管⽤户处于何种模式,只要按⼀下键,即可使Vi进⼊命令⾏模式;我们在shell环境(提⽰符为$)下输⼊启动Vi命令,进⼊
编辑器时,也是处于该模式下。 在该模式下,⽤户可以输⼊各种合法的Vi命令,⽤于管理⾃⼰的⽂档。此时从键盘上输⼊的任何字符都被当做编辑命令来解释,若输⼊的
字符是合法的Vi命令,则Vi在接受⽤户命令之后完成相应的动作。但需注意的是,所输⼊的命令并不在屏幕上显⽰出来。若输⼊的字符不是Vi的合法命令,Vi会响铃报警。
⽂本输⼊模式 (input mode/编辑模式)
在命令模式下输⼊插⼊命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换命令s都可以进⼊⽂本输⼊模式。在该模式下,⽤户
输⼊的任何字符都被Vi当做⽂件内容保存起来,并将其显⽰在屏幕上。在⽂本输⼊过程中,若想回到命令模式下,按键即可。
末⾏模式 (last line mode/指令列命令模式)
末⾏模式也称ex转义模式。
Vi和Ex编辑器的功能是相同的,⼆者主要区别是⽤户界⾯。在Vi中,命令通常是单个键,例如i、a、o等;⽽在Ex中,命令是以按回车键
结束的正⽂⾏。Vi有⼀个专门的“转义”命令,可访问很多⾯向⾏的Ex命令。在命令模式下,⽤户按“:”键即可进⼊末⾏模式下,此时Vi会在显
⽰窗⼝的最后⼀⾏(通常也是屏幕的最后⼀⾏)显⽰⼀个“:”作为末⾏模式的提⽰符,等待⽤户输⼊命令。多数⽂件管理命令都是在此模式下
执⾏的(如把编辑缓冲区的内容写到⽂件中等)。末⾏命令执⾏完后,Vi⾃动回到命令模式。
⼀、由⼀般模式转到输⼊模式的命令
1〉光标移动命令
0 移动到光标所在列的最前⾯[Home]
$ 移动到光标所在列的最後⾯[End]
[CTRL][d] 向下半页
[CTRL][f] 向下⼀页[PageDown]
[CTRL][u] 向上半页
[CTRL][b] 向上⼀页[PageUp]
H移动到视窗的第⼀列
M移动到视窗的中间列
L移动到视窗的最后列
G移动到⽂件最后列
nG直接⽤数字 n 加上⼤写 G 移动到第 n ⾏ (等同于命令“:n”)
fx往右移动到 x 字符上
tx往右移动到 x 字符前
shift +g 跳到⽂件尾 (等同于G)
gg 跳到⽂件头
xp 交换两个字符位置
ddp 上下两⾏调换
[ 移到⽂件开始位置
] 移到⽂件结束位置
nk向上移n⾏
n↑向上移n⾏
n-向上移n⾏,光标在该⾏的起始
ni 向下移n⾏
n+向下移n⾏,光标在该⾏的起始
n↓向下移动n⾏
w 向前移动⼀个word
nw 向前移动n个word
→ 向右移动⼀个字符【l】
← 向左移动⼀个字符【h】
↑ 向上移动⼀⾏【k】
↓ 向下移动⼀⾏【j】
2〉删除操作命令
x 删除光标所在的字符【delete】dw 删除光标所在的单词
d $ 删除光标⾄⾏尾的所有字符
/d d 同/d d $
dd 删除当前⾏
dnd 删除当前n⾏
dG 删除当前⾏到最后⼀⾏
可在删除命令前加上数字,如<5x表⽰删除5⾏。
3〉改变与替换操作命令
r 替换光标所在的字符
/rr 替换字符序列
c $ 替换⾃光标位置⾄⾏尾的所有字符
cl 修改当前字符
cc 修改当前⾏
c$ 修改到⾏尾的内容
:%s#abc#123#g 将⽂中的所有abc都替换为123
ddp 上下两⾏交换(其实是先dd,然后执⾏p)
4〉查询命令
/string 往前搜索string【⽀持正则】
n 查找下⼀个
string 往后搜索string
/+上下箭头 搜索历史
:+上下箭头 :命令的历史
* 往前查找当前word,前提是光标移动到要查找的word
# 往后查找当前word,前提是光标移动到要查找的word
/\
% 查找匹配的括号,前提是光标要在⼀边的括号上
fx 在当前⾏移动到下⼀个字符x
5〉拷贝与粘贴命令
yw 将光标所在单词拷⼊剪贴板
y$ 将光标⾄⾏尾的字符拷⼊剪贴板
Y 同
yy 将当前⾏拷⼊剪贴板
yny 将当前n⾏拷⼊剪贴板
p 将剪贴板中的内容粘贴在光标后
P 将剪贴板中的内容粘贴在光标前
6〉⽂件编辑、保存及退出vi命令
:q 不保存退出
:q! 不保存强制性退出
:w 保存编辑
:w filename 存⼊⽂件filename中
:w! filename 强制性存⼊⽂件filename中
:wq / :x / ZZ 保存退出
:wq! 强制保存然后退出
7〉其他命令
:args 显⽰当前⽂件名
u 撤销,相当于Ctrl+z
U ⼀次撤销⼀⾏的所有操作
Ctrl+R 重做
:help 查看所有帮助
:help 0 查看关于0的帮助
ZZ 退出帮助,回到编辑模式
Ctrl+G 知道【⽂件名 是否修改 当前第⼀⾏ 前⾯所占⾏的百分⽐】
Ctrl+v 选择⼀个块
:set number 显⽰⾏号
:set nonumber 不显⽰⾏号:set rule 显⽰光标位置
:set ignorecase 搜索不区分⼤⼩写
:set noignorecase 搜索区分⼤⼩写
:ab string string 提⽰(⽐如:ab abc abcdefg,当输⼊abc然后输⼊空格,abc⾃动变为abcdefg)
:new filename 打开或新建⽂件,如果不指定⽂件名或者⽂件名不存在则是新建⽂件。
:set ruler 打开光标的⾏列位置显⽰功能
:set shiftwidth=4 设置⾃动缩进格数
:set autoindent 打开⾃动缩进功能
:set paste 粘贴的时候关闭⾃动缩进
:set nopaste 粘贴的时候打开⾃动缩进
三、进⼊vi的命令
vi filename: 打开或新建⽂件,并将光标置于第⼀⾏⾸
vi +n filename: 打开⽂件,并将光标置于第n⾏⾸
vi + filename: 打开⽂件,并将光标置于最后⼀⾏⾸
vi +/pattern filename: 打开⽂件,并将光标置于第⼀个与pattern匹配的串处
vi -r filename: 在上次正⽤vi编辑时发⽣系统崩溃,恢复filename
vi filename.filename: 打开多个⽂件,依次进⾏编辑
vi + /word filename:进⼊vi并且由⽂件的word这个字开始
注意:Ctrl+S在Linux下是停⽌显⽰终端的输出,这个时候屏幕就像定住了⼀样,终端不会继续输出,也不会响应你的输⼊,需要按⼀下
Ctrl-Q 即可恢复输⼊。