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

/\ 只匹配word,不匹配wordstr等等

% 查找匹配的括号,前提是光标要在⼀边的括号上

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 即可恢复输⼊。