vi 命令

Posted WIN&迷失

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vi 命令相关的知识,希望对你有一定的参考价值。

vi编辑器是所有Unix及Linux系统下标准的编辑器

vi的三种模式

基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

1) 命令模式(command mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式、底行模式下。

2) 插入模式(Insert mode)

只有在插入模式下,才可以做文字输入,按ESC键可回到命令模式。

3) 底行模式(last line mode)

将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号。
不过一般我们在使用时把vi简化成两个模式,就是将底行模式也算入命令模式。

 

vi 的基本操作

a) 进入vi

在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:
$ vi myfile
不过有一点要特别注意,就是您进入vi之后,是处于命令行模式,您要切换到插入模式才能够输入文字。初次使用vi的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入vi后,先不要乱动,转换到插入模式再说吧!

b) 切换至插入模式编辑文件

在命令模式下按一下字母 i 就可以进入插入模式,这时候你就可以开始输入文字了。

c) 从插入模式切换至命令模式

处于插入模式时只能一直输入文字,按下ESC键可转到命令模式。

d) 退出vi及保存文件

在命令行模式下,按一下冒号键进入底行模式,例如:
:w (保存当前文件)
:w filename (将文件以指定的文件名“filename”保存)
:wq (保存并退出vi)
:wq filename(将正在编辑的文件保存为“filename”文件退出vi)
:q (退出vi)
:q! (不存盘强制退出vi)
:x (相当于 :wq 的功能)
 

vi命令模式下的操作

 

1). 插入模式

按 i 切换进入插入模式后,是从光标当前位置开始输入文件;
按 a 进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按 o 进入插入模式后,是插入新的一行,从行首开始输入文字。

2). 从插入模式切换为命令行模式

按 ESC 键。

3). 移动光标

vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母 h 、 j 、 k 、 l ,分别控制光标左、下、上、右移一格。
按 Ctrl+b :屏幕往后移动一页。
按 Ctrl+f :屏幕往前移动一页。
按 Ctrl+u :屏幕往后移动半页。
按 Ctrl+d :屏幕往前移动半页。
按数字 0 :移到当前行的开头。
按 G :移动到文章的最后。
按 $ :移动到光标所在行的行尾。
按 ^ :移动到光标所在行的行首。
按 w :光标跳到下个字的开头。
按 e :光标跳到下个字的字尾。
按 b :光标回到上个字的开头。
按 #l :光标往后移的第#个位置,如:5l,56l .

4). 删除文字

x :每按一次,删除光标所在位置的后面一个字符。
#x :删除光标所在位置的后面#个字符,例如, 6x 表示删除光标所在位置的后面6个字符。
X :每按一次,删除光标所在位置的前面一个字符。
#X :删除光标所在位置的前面#个字符,例如, 20X 表示删除光标所在位置的前面20个字符。
dd :删除光标所在行。
#dd :从光标所在行开始删除#行。

5). 复制

yw :将光标所在之处到字尾的字符复制到缓冲区中。
#yw :复制#个字到缓冲区。
yy :复制光标所在行到缓冲区。
#yy :复制从光标所在行往下#行文字,例如, 6yy 表示复制从光标所在行往下6行文字。
p :将缓冲区内的字符贴到光标所在位置。
注意:所有与 y 有关的复制命令都必须与 p 配合才能完成复制与粘贴功能。

6). 替换

r :替换光标所在处的字符。
R :替换光标所到之处的字符,直到按下 ESC 键为止。

7). 回复上一次操作

u :如果您误执行一个命令,可以马上按下 u ,回到上一个操作。按多次 u 可以执行多次恢复。

8). 更改

cw :更改光标所在处的字到字尾处
#cw :例如,「3cw」表示更改3个字

9). 跳至指定的行

Ctrl+g 列出光标所在行的行号。
#G :移动光标至文件的第#行行首,例如, 15G 表示移动光标至文件的第15行行首。
 

vi的底行操作模式

在使用底行模式之前,请记住先按 ESC 键确定您已经处于命令行模式下后,再按冒号 : 即可进入底行模式。

A) 列出行号

set nu :在文件中的每一行前面列出行号。

B) 跳到文件中的某一行

# : # 号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

C) 查找字符

/关键字 :先按 / 键,再输入您想寻找的字符,可以按 n 寻找下一个关键字。
?关键字 :先按 ? 键,再输入您想寻找的字符,可以按 n 寻找上一个关键字。

 

 

 

以上是关于vi 命令的主要内容,如果未能解决你的问题,请参考以下文章

linux vi保存退出命令 (如何退出vi)

vi命令

linux vi命令的使用方法有哪些?

vi 删除命令

关于linux vi命令

vi 命令