您的位置:首页 > 运维架构 > Linux

编辑神器Vi介绍及常用命令

2017-07-15 14:18 204 查看
1 vi 简介

vi 编辑器是 Linux 和 Unix 上最基本的文本编辑器,工作在字符模式下。由于不需要图

形界面,vi 是效率很高的文本编辑器。尽管在 Linux 上也有很多图形界面的编辑器可用,

但 vi 在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。

vi 编辑器通常被简称为 vi,而 vi 又是“Visual interface”的简称。它在 Linux 上的地

位就像 Edit 程序在 DOS 上一样。它可以执行输出、删除、查找、替换、块操作等众多文本

操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。

vi 编辑器并不是一个排版程序,它不像 Word 或 WPS 那样可以对字体、格式、段落

等其他属性进行编排,它只是一个文本编辑程序。没有菜单,只有命令,且命令繁多。vi

有 3 种基本工作模式:命令行模式、文本输入模式和末行模式。

Vim 是 vi 的加强版,比 vi 更容易使用。vi 的命令几乎全部都可以在 vim 上使用。

2 vi 工作模式

vi 有三种基本工作模式:命令模式、文本输入模式、末行模式。

 

2.1 命令模式

任何时候,不管用户处于何种模式,只要按一下 ESC 键,即可使 Vi 进入命令模式;我

们在 shell 环境(提示符为$)下输入启动 Vi 命令,进入编辑器时,也是处于该模式下。在该

模式下,用户可以输入各种合法的 Vi 命令,用于管理自己的文档。此时从键盘上输入的任

何字符都被当做编辑命令来解释,若输入的字符是合法的 Vi 命令,则 Vi 在接受用户命令之

后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不

是 Vi 的合法命令,Vi 会响铃报警。

2.2 编辑模式

在命令模式下输入插入命令 i、附加命令 a 、打开命令 o、修改命令 c、取代命令 r 或

替换命令 s 都可以进入文本输入模式。在该模式下,用户输入的任何字符都被 Vi 当做文件

内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键 ESC

即可。

2.3 末行模式

在命令模式下,用户按“:”键即可进入末行模式下,此时 Vi 会在显示窗口的最后一

行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。

多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命

令执行完后,Vi 自动回到命令模式。例如 :sp newfile

则分出一个窗口编辑 newfile 文件。如果要从命令模式转换到编辑模式,可以键入命

令 a 或者 i;如果需要从文本模式返回,则按 Esc 键即可。在命令模式下输入“:”即可切

换到末行模式,然后输入命令。

vi 基本操纵

3.1 进入编辑模式

命令 含义

i 和 I i 在光标前插入,I 在行首插入

a 和 A a 在光标后插入,A 在行末插入

o 和 O o 在光标所在行下一行插入,O 在光标所在行上一行插入

3.2 移动光标

命令 含义

h 光标向左移动

j 光标向下移动

k 光标向上移动

l 光标向右移动

H、M、L 光标移动到到可见屏幕第一行(H)、中间行(M)、最后一行(L)

^和$ ^移动到行首,$移动到行末

G 和 gg G 文档最后一行,gg 文档第一行

ctrl+f、ctrl+b 向前翻屏、向后翻屏

ctrl+d、ctrl+u 向前半屛、向后半屛

{ 和 } {向上移动一段,}向后移动一段

w 和 b 向前移动一个单词,向后移动一个单词

3.3 删除命令

命令 含义

X 和 x x 删除光标后一个字符,X 删除光标前一个字符,包含光标位置字符

dd 和 n dd dd 删除所在行,5 dd 删除指定行数

d0 和 D d0 删除光标前本行所有内容,D 删除光标后本行所有内容,包含光标位置字符

dw 删除光标所在位置的字,包含光表所在位置字符

3.4 撤销命令

命令 含义

u 一步一步撤销

ctrl + r 反撤销

3.5 重复命令

命令 含义

. 重复执行上一次操作的命令

3.6 复制粘贴
命令 含义

yy 和 n yy 和 y$
y^ yy 复制当前行,5 yy 复制 5 行
p 在光标所在位置向下新开一行粘贴

3.7 选择文本

命令 含义

v 和 V v 选择单个字符,V 选择整行

<<和>> 选择文本之后,向左缩进,向右缩进

3.8 查找替换

命令 含义

命令模式下,r 和 R r 替换当前字符,R 替换光标后的字符

末行模式下,/ + str n 查找下一个,N 查找前一个

末行模式下,%s/abc/123/g 将文件中所有 abc 替换为 123

末行模式下,1, 10s/abc/123/g 将第一行至第 10 行之间的 abc 替换成 123

4.1 开打文件分屏

命令 含义

vim -On file1 file2 ... 使用大写 O 参数进行垂直分屏,n 为数组,不得小于文件数

vim -on file1 file2 ... 使用小写 o 参数进行水平分屏

ctrl+w c 关闭当前窗口

ctrl+w q 关闭当前窗口,如果只剩最后一个,则退出 vim
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息