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 」       保存并退出;

results matching ""

    No results matching ""