Linux 全屏幕编辑器VI
Linux系统提供了一个完整的编辑器家族,例如Ed、Ex、Vi、Emacs,按照功能分为两大类:行编辑器(Ed、Ex)和全屏编辑器(Vi、Emacs).行编辑器顾名思义就只能操作一行,这里不讨论,全屏编辑器可以对整个屏幕进行编辑,相对来讲比行编辑器来得方便,这里先讲一下vi编辑器的使用。
Vi是Linux操作系统的第一个全屏幕编辑器,功能非常强大,英文简称是"Visual interface",它可以执行查找、删除、替换、块操作等 文本操作,不过它没有菜单,只有命令(往往高手都喜欢这么干^_^)。
Vi有三种工作模式:编辑模式、插入模式、命令模式,进入vi后,一般首先进入的就是编辑模式,这时用户可以输入编辑命令对文本进行 编辑(注:这里的输入任何一个字符,都会被当成命令执行,而不是单纯的文本),如果在编辑模式下,输入了命令i/I、a/A、o/O,那么此时
模式就会进入插入模式,在这个模式下面,任何输入的字符都被作为文本处理,而不是命令,如果想回到编辑模式下,按 ESC按键即可。在编辑模式下,如果按":"键则进入了命令模式,此时在显示窗口最后一行会显示一个":"号作为命令输入提示符, 用户可以在这里输入命令并执行。
这三个工作模式切换图如下:
一、插入模式下的命令如下:
类型 |
命令 |
Comments |
直接进入插入模式 |
i/I |
当前光标前插入/行首插入 |
o/O |
当前行下面新开一行行首插入/当前行上面新开一行行首插入 |
|
a/A |
当前光标后插入/行尾插入 |
|
替换后进入插入模式 |
s/ns |
替换光标所在位置起的n个字符 |
cw/ncw |
替换光标所在位置起的n个单词 |
|
cb/ncb |
替换光标所在位置前n个单词 |
|
c0/c$ |
替换光标所在位置到行首/行尾的所有字符 |
二、编辑模式下的命令如下:
类型 |
命令 |
Comments |
光标定位 |
h/H/nH |
左移一个字符/当前屏幕首行行首/当前屏幕第n行行首 |
j |
下移一个字符 |
|
k |
上移一个字符 |
|
l/L/nL |
右移一个字符/当前屏幕尾行行首/行前屏幕倒数第n行行首 |
|
w |
右移到下一个字首 |
|
0 |
光标移动到所在行行首 |
|
$ |
光标移动到所在行行尾 |
|
^ |
光标移动所在行第一个非空字符 |
|
Ctrl+f |
向文件末尾翻滚一屏 |
|
Ctrl+b |
向文件开头翻滚一屏 |
|
替换、删除 |
rc/nrc |
用字符c替换光标位置开始的n个字符 |
x/nx |
删除从光标位置开始的n个字符 |
|
dw/ndw |
删除从光标位置开始的n个单词 |
|
dd/ndd |
删除包括光标所在行及其后的n-1行 |
|
db/ndb |
删除光标所在位置开始向前的n个单词 |
|
复制/粘贴 |
yy/nyy |
复制当前行开始的n行数据 |
p |
粘贴剪贴版上的内容到光标处 |
|
搜索字符串 |
/str、?str |
正向/反向搜索str |
n/N |
向相同/相反的方向继续搜索str |
|
撤销、重复 |
u |
撤销操作 |
. |
重复执行操作 |
|
退出 |
ZZ |
连续输入两次ZZ,保存退出vi |
ZQ |
不保存退出 |
三、命令模式下命令如下:
类型 |
命令 |
Comments |
光标定位 |
:n |
将光标移动到第n行 |
文件相关 |
:w :w file |
保存当前内容(到file中) |
:r file :e file :f file |
打开另一个文件/新建文件/将文件改名为file |
|
搜索、替换、删除 |
:/str/ :?str? |
正向/反向搜索str |
:n1,n2 co n3 |
将n1到n2的内容复制到n3后面 |
|
:d :nd |
删除从当前行开始的n行 |
|
:n1,n2d |
删除从n1到n2行的内容 |
|
退出 |
:q |
退出vi |
:q! |
不保存退出vi |
|
:wq |
保存退出vi |
注: 在microsoft windows 环境下可以下载vi的windows版本gvim来使用,地址是http://www.vim.org/download.php