vi编辑器
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指 令。由于 对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编 辑器,学会它后,您将在Linux的世界里畅行无阻。
vi的基本概念
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
- 命令行模式(command mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
- 插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
- 底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式(command mode)。
vi的基本操作
进入vi
在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:
vi myfile
不过有一点要特别注意,就是您进入vi之后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才能够输入文字。初次使用vi的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入vi后,先不要乱动,转换到 「插入模式(Insert mode)」再说吧!
切换至插入模式
在「命令行模式(command mode)」下按一下字母「 i 」
就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了。
切换至命令行模式
处于「插入模式(Insert mode)」,就只能一直输入文字,如果您发现输错了字!想用光标键往回移动,将该字删除,就要先按一下「 ESC 」
键转到「命令行模式(command mode)」再删除文字。
切换至底行模式
处于「命令行模式(command mode)」下,按一下「 : 」
冒号键进入「底行模式(Last line mode)」。
退出vi及保存文件
在「底行模(Last line mode)」下:
:w filename (以指定的文件名filename保存)
:wq (存盘并退出)
:q! (不存盘强制退出)
命令行模式功能键
插入模式
「 i 」进入插入模式,从光标当前位置开始输入文字;
「 a 」进入插入模式,从目前光标所在位置的下一个位置开始输入文字;
「 o 」进入插入模式,是插入新的一行,从行首开始输入文字;
移动光标
vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「 h 」、「 j 」、「 k 」、「 l 」
,分别控制光标左、下、上、右移一格。
「 h 」 向左移动一格;
「 j 」 向下移动一格;
「 k 」 向上移动一格;
「 l 」 向右移动一格;
「 ctrl + b 」 屏幕向后移动一页;
「 ctrl + f 」 屏幕向前移动一页;
「 ctrl + u 」 屏幕向后移动半页;
「 ctrl + d 」 屏幕向前移动半页;
「 0 」 移到文件开头(数字“0”);
「 G 」 移到文件最后;
「 $ 」 移动到光标所在行的"行尾";
「 ^ 」 移动到光标所在行的"行首";
「 w 」 光标跳到下个字的开头;
「 e 」 光标跳到下个字的字尾;
「 b 」 光标回到上个字的开头;
「 #l 」 光标移到该行的第#个位置,如:5l,56l;
删除文字
「 x 」 每按一次,删除光标所在位置的"后面"一个字符;
「 #x 」 删除光标所在位置的"后面"的"#"个字符,例如:6x;
「 X 」 每按一次,删除光标所在位置的"前面"一个字符;
「 #X 」 删除光标所在位置的"前面"的"#"个字符,例如:20X;
「 dd 」 删除光标所在行;
「 #dd 」 从光标所在行开始删除“#”行;
复制与粘贴
「 yw 」 将光标所在之处到字尾的字符复制到缓冲区中;
「 #yw 」 复制#个字到缓冲区;
「 yy 」 复制光标所在行到缓冲区;
「 #yy 」 复制从光标所在行往下数 # 行文字的字符到缓冲区,例如:6yy;
「 p 」 将缓冲区内的字符贴到光标所在位置;
替换
「 r 」 替换光标所在处的字符;
「 R 」 替换光标所到之处的字符,直到按下「ESC」键为止;
取消上一次操作
「 u 」 如果误执行一个命令,可以马上按下「u」,取消上一个操作。按多次"u"可以执行多次取消;
更改
「 cw 」 更改光标所在处的字到字尾处;
「 #cw 」 更改光标所在处开始的 # 个字,例如:c3w;
跳至指定的行
「 ctrl + g 」 列出光标所在行的行号;
「 #G 」 移动光标至文件的第 # 行的行首,例如:15G;
底行模式功能键
在使用「底行模式」之前,请记住先按「ESC」
键确定您已经处于「command mode」下后,再按「 : 」
冒号即可进入「last line mode」。
列出行号
「 set nu 」 在文件中的每一行前面列出行号;
跳到文件中的某一行
「 # 」 在冒号后输入一个数字,再按回车键跳到指定的行,如输入数字15,再回车,就会跳到文件的第15行;
查找字符
「 /关键字 」 先按「 / 」键,再输入想查找的字符,如果找到的关键字不是想要的,可以一直按「 n 」会往后寻找到您要的关键字为止;
「 ?关键字 」 先按「 ? 」键,再输入想查找的字符,如果找到的关键字不是想要的,可以一直按「 n 」会往前寻找到您要的关键字为止;
保存文件
「 w 」 在冒号输入字母「w」就可以将文件保存起来;
退出vi
「 q 」 在冒号输入字母「q」就是退出,如果无法离开vi,可以在「q」后跟一个「!」强制离开vi;
「 qw 」 保存并退出;