vi的名字取自于visual,意为“直观”,它是一个全屏幕文本编辑程序。在Linux系统中vi是最常用的编辑程序,它的文本编辑功能十分强大,但使用起来比较复杂。初学者可能感到困难,经过一段时间的学习和使用后,你就会体会到使用vi非常方便。Linux系统中的vi其实是vim。vi与vim的用法很像,因为vim是vi的增强版,所以vi的功能vim都有,而且vim新增了许多vi没有的功能,它比vi容易使用。
二、Vi的工作模式
1.Vi的三种工作模式
即编辑模式、命令模式和插入模式。
2.vi的启动
输入vi命令后,便进入全屏幕编辑环境,此时的状态为编辑模式。
(1) vi 进入vi的一个临时缓冲区,光标定位在该缓冲区第1行第1列的位置上。 (2) vi file1 如果file1文件不存在,将建立此文件;如该文件存在,则将其拷贝到一个临时缓冲区。光标定位在该缓冲区第1行第1列的位置上。
(3) vi+file1 如果file1文件不存在,将建立此文件;如该文件存在,则将其拷贝到一个临时缓冲区。光标定位在文件最后1行第1列的位置上。
(4) vi+nfile1(n:为数字) 如果file1文件不存在,将建立此文件;如该文件存在,则将其拷贝到一个临时缓冲区。光标定位在文件第N行第1列的位置上。
(5) vi+/string file1 如果file1文件不存在将建立此文件;如该文件存在则将其拷贝到一个临时缓冲区。光标定位在文件中第一次出现字符串string的行首位置。
3.退出vi
建议在退出vi前,先按ESC键,以确保当前vi的状态为编辑方式,然后再键入“:”(冒号),输入下列命令,退出vi。
(1):q 不保存退出,如vi发现文本内容已被更改,将提示用户。 (2):q!(或:quit) 强行退出vi,使被更新的内容不写回文件中。
(3):w 将编辑缓冲区的内容写入文件,则新的内容就替代了原始文件。这时并没有退出vi,必须进一步输入下述命令才能退出vi:
:w filename(存入指定文件) :q
(4):wq 即将上面的两步操作可以合成一步来完成,先执行w,后执行q。 (5):w! 防止覆盖一个已经存在的文件 (6) ZZ 同”:wq” (7) ZQ 同”:q!”
三、Vi的常用命令
1.进入插入模式 I A O 在光标前插入字符 在光标后追加字符 在下一新行的行首等待输入文本 I A O 在行首插入字符 在行尾追加字符 在当前光标所在行上面插入的新行行首等待输入文本 2.编辑模式下的操作 h,j,k,l Ctrl + f Ctrl + d 光标左、下、上、右移一个字符 向下翻一屏 向下翻半屏 Ctrl + b Ctrl + u 向上翻一屏 向上翻半屏 H L w 0 $ rc/rw x dw db dd YY /str n u ZZ 光标移到屏幕左上角 光标移到屏幕左下角 光标移到下一字首 光标移到行首 光标移到行尾 用字符c替换光标处的字符/词 删除光标处的字符 删除光标处的词 删除光标处之前的词 删除光标所在行 nH nL e b ^ nrc/w nx ndw ndb ndd 光标移到当前屏幕正数n行首 光标移到当前屏幕倒数n行首 光标移到字尾或下字尾 光标移到字首或上字首 光标移到行的第一个字符 用字符c替换当前光标指向的前n字符 删除从光标处的向右的n个字符 删除光标处的n个词 删除光标处之前的n个词 删除光标所在行及后n-1行 复制当前行到缓冲区 从光标处向后查找相应的字符串 相同方向移动strr的地方 nYY ?str N 复制当前n行到缓冲区 P 粘贴 从光标处向前查找相应的字符串 相反方向移动到strr的地方 取消操作 存盘退出 . ZQ 重复操作 不保存退出 3.命令模式下的操作 n Wq/x w n1,n2 w file 1,.e file r file f file /str/ /str/ w file s /str1/str2/ .,$ /str1/str2/g n1,n2 co n3 d n1,n2 d /str1/,str2/ d !cmd r! cmd 跳到第n行 保存当前文件并退出 保存当前文件 将n1到n2行写到file文件中 写到file文件中 打开file文件 当前文件改名为file 光标从当前向右移到有str处 包含有str行的内容写到file中 将第一个str1替换为str2 q q! w file nw ile .,$ w file e file ?str? 退出vi 不保存文件并退出vi 当前文件写到file文件中 将第n行写到file文件中 从当前到文件尾写到file文件中 新建file文件 光标从当前向左移到有str处 /str1/str2/ w file 从str1到str2的内容写入file中 s /str1/str2/g 将所有的str1替换为str2 从当前位置开始到结尾的所有str1替换为str2 将n1~n2行间内容拷到第n3行下 删除当前行 将n1行到n2行之间的内容删除 删除从str1始到str1止的内容 运行shell命令 命令运行结果写入当前位置 n1,n2 m n3 nd .,$ d n1,n2 w! cwd 将n1~n2行间内容移到第n3行下 删除从当前行开始的n行 删除当前行开始到结尾的所有内容 将n1到n2的内容作为cmd命令的输入,不指定则全部内容均为CMD命令 四、Vi的高级应用
1.设置Vi环境
为控制不同的编辑功能,vi 提供了很多内部选项。利用 :set 命令可以设置选项。 基本语法为::set option //设置选项 option 常见的功能选项包括: 1)autoindent(ai)
新行会自动与上一行对齐;利用CTRL+D可减少一级缩进 2)ignorecase(ic)/noignorecase
忽略(返回)表达式中大小写字母的区别 3)ruler/noruler
底部显示(关闭)光标所在行、列的位置
4)number(nu)/ nonumber 显示(关闭)显示正文行号
5)scoll 设定滚屏行数 例 set scoll=5 6)shiftwidth(sw)
设置自动缩进时使用CTRL+D时的空格数。默认值:sw=8 例 set sw=10
7)showmode(smdi)/noshowmode 显示(关闭)模式提示 8)wrapmargin(wm)
默认的右边界为80列;例set wm=10,则右边界为70,恢复用set wm=0 9)tabstop 设置按 Tab 键跳过的空格数。例如 :set tabstop=n,n 默认值为 8 10)mk 将选项保存在当前目录的 .exrc 文件中 2.“:ab”和“map”
1)缩写操作符(:ab) 指定字符串的缩写
例 :ab cd compact disk
则输入文本时,只要输入“cd空格”,则变为“compact disk” 取消时 :unab cd 即可 2)宏操作符(:map) 指定系列操作给某一个键
例 :map v /linux 指定v为搜索linux字符串 :map #5 YY 指定F5键为复制一行 :map 显示所有已经指定的键 :Unmap v 取消指定
#n 表示指定功能键号,n=1-12 3.“exrc”文件
VI的所有设置均保存在当前目录的“.exrc”文件中
可使用VI来建立这个文件
vi .exrc #打开.exrc文件并编辑
set report=0 #显示反馈信息
set showmod #显示vi三种模式的提示信息 set number #显示行号 set ic #忽略搜索时大小写字母敏感 set wm=6 #定义右边距为6个空格
set scroll=5 #设置使用^+d时滚动的行数为5行 :ab cd compact disk #缩写cd会自动扩展为compact disk :map #5 YY #复制命令YY用F5键代替 4.运行shell命令
在命令模式下可以运行linuxshell命令;用“!”来通知Vi后面是一个Shell命令
注:也可以再打开一个文件来编辑 例 :!vi test.txt
因篇幅问题不能全部显示,请点此查看更多更全内容