Linux下VI编辑器用法深度解析
1. vi 编辑器的使用
vi 是标准的 Linux 文本编辑程序
不是基于窗口的 www.zhishiwu.com
多用途编辑程序,可以再各种终端上编辑各式各样的文件
多种系统上都可以使用,比如 Solaris、AIX、HP-UNIX、RedHat 等操作系统上都可以使用
1.1 vi finename
如果 filename 已经存在,vi 会打开现存的文件
如果 filename 不存在(尚未创建),vi 会创建名为 filename 的文件。
filename 如果包含路径,则 filename 还有当前路径和相对路径区分,如果不包含路径则
会在当前路径下创建该文件。
1.2 vi 的三种模式
1.2.1 输入模式:输入文本(编辑模式)
运行 vi 编辑器时,通常首先进入的是命令模式,可以键入如下命令使编辑器进入输入模式: www.zhishiwu.com
I 在命令模式下输入 I,可在行首插入文本
i 在命令模式下输入 i,可在光标的左边插入文本
A 输入 A 可在一行的结尾处添加文本
a 输入 a 可在光标的右边处插入文本
O 在当前光标位置上面打开一行并提示输入
o 在当前光标位置下面打开一行并提示输入
u 撤销前一个命令:在最后一个命令之后立即输入 u 可以撤销该命令的操作,比如撤销输入
. 重复执行某个命令
U 可以使用 U 来撤销你对一行所做的所有更改
注意:仅当你尚未将光标移动到您所编辑的行以外的地方时,才可以使用 U 命令进行撤销
使用方法:当你在vi输入模式下输入一行后,如果你想撤销该输入,请在输入后保持光标在
在该行(千万不要移动到该行以外再移回来,那样做也是无用功),然后按 Esc 键将vi编辑
器的输入模式切换到命令模式,然后再按 U 撤销该行的输入。
1.2.2命令模式:执行命令
当 vi 编辑器处于输入模式下时,按键盘上的 Esc 键可以进入命令模式
在命令模式下,可以输入命令来执行各种多种功能,大多数 vi 命令都是由一个或两个字母
加上一个可选数字组成。
以下是以冒号开头的命令
:w +回车 保存不退出
:wq +回车 保存并退出
:x +回车 保存并退出(强制)
:q! +回车 不保存退出
:q! +回车 不保存退出(强制)
在非输入模式(编辑模式)下,如何在文件中移动光标:
h: 向左移动一个字符 www.zhishiwu.com
l: 向右移动一个字符
j: 向下移动一行
k: 向上移动一行
这四个键一般不推荐使用,推荐使用键盘上的上、下、左、右箭头
^:(Shift+6)移动到当前行的开头处
$:(Shift+4)移动到当前行的末尾处
H: 使光标移动到屏幕的顶部
M: 使光标移动到屏幕的中部
L: 使光标移动到屏幕的底部
G: 使光标移动到文件的尾部
Page Up: 向上翻页一屏
Page Down:向下翻页半屏
x:删除一个字符
dd:删除一行
ndd: (n 为行数)删除 n 行
yy:复制一行
p:粘贴
x/dd/ndd+p:移动文本内容:使用 x/dd/ndd 先将要移动的内容删除,然后再按 p 粘贴即可
:r filename 复制指定文件 filename 的内容
使用方法:在要插入文本的地方(光标处)输入 :r filename + 回车即可。
/: 查找字符串
使用方法:输入/,并在/后面输入要查找的字符串,然后按回车即可查找输入的字符串
/str_to_find + 回车
输入 n 可以跳转到该字符串的下一个出现处
输入 N 可以跳转到该字符串的上一个出现处
www.zhishiwu.com
高级用法:替换字符串
:s/old/new 将一行内的头一个字符串old替换为新字符串new
:s/old/new/g 将一行内所有的字符串old替换为新字符串 new
:#,#s/old/new/g 将两行内的所有字符串old替换为新字符串new
:%s/old/new/g 将文件内所有的字符串old替换为新字符串new
:%s/old/new/gc 加入c选项可在执行上面的:%s/old/new/g操作时询问用户确认每个替换操作
设置 vi
:set nu 设置行标(行号)
:set nonu 取消行号显示
:set showmode 设置显示用户模式
:set readonly 设置文件只读
末行模式:执行特定命令