Vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。 Vi不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。 Vi没有菜单,只有命令,且命令繁多。 一、 vi的操作模式 vi提供三种操作模式:输入模式(insert mode)和指令模式(command mode)和末行模式(escape mode)。 在输入模式下,用户可输入文本资料。在指令模式下,可进行删除、修改等各种编辑动作。末行模式也称ex转义模式,以":"或者"/"为前导的指令,出现在屏幕的最下一行,任何输入都被当成特别指令。 在输入模式下,按Esc键切换到指令模式下。
在指令模式下,按输入指令(i、a、o等)进入输入模式。 二、进入vi $ vi filename
直接键入“vi +
所要编辑的文件名”,即可对指定的文件进行编辑。 $ view filename
以只读方式打开文件filename。 vi filename 进入vi并读入指定名称的文件(新、旧文件均可)。 编辑数个文件(利用vi filename(s))进入vi后) 三、指令模式 a 在当前游标之后输入
A 在当前行之末输入 i 在当前游标之前输入 I 在当前行之首输入 o 在当前行之下新增一行,并在新增行输入 O 在当前行之上新增一行,并在新增行输入 输入结束后,按Esc键退出输入模式。 3.2 游标移动 h 向左移动一个字元
l 向右移动一个字元 j 向下移动一个字元 k 向上移动一个字元 b 左移一个单词,至词首 w 右移一个单词,至词尾 0 移到当前行行首 $ 移到当前行行尾 + 移至下一行的行首 - 移至上一行的行首 H 移至视窗的第一行 M 移至视窗的中间一行 L 移至视窗的最后一行 G 移至该文件的最后一行 nG 移至该文档的第n行 n+ 下移n行 n- 上移n行 3.3 视窗移动 <Ctrl> + f 视窗下卷一页
<Ctrl> + b 视窗上卷一页 <Ctrl> + d 视窗下卷半页 <Ctrl> + u 视窗上卷半页 <Ctrl> + e 视窗下卷一行 <Ctrl> + y 视窗上卷一行 3.4 删除操作 x 删除光标所在的字符。
#x 删除光标所在处之后(含光标)#个字符,如3x。 X 删除光标所在处之前一个字符。 #X 删除光标所在处之前(含光标)#个字符,如3X。 dw 删除一个单词(Word)。 #dw 删除#个单词(Word)。 D 删除自光标所在处到此行结尾的全部字符,同d$。 dd 删除光标所在的整行。 #dd 删除自光标所在处开始向下#行,如5dd。 dG 由现在光标所在处删除至文件结尾。 :start,endd 删除文件的第start到end行。 3.5 修改操作 s 修改游标所在字元,修改完成后按Esc键结束
S 修改整行内容,修改完成后按Esc键结束 r 替换当前游标所在字元 R 进入替换状态,直至按Esc键结束 cw 修改一个单词(从游标位置至词尾) cb 修改一个单词(从词首至游标位置) cc 修改整行内容,完成后按Esc键结束,同S c0 修改行首至游标位置的内容 c$ 修改游标位置至行尾的内容 ~ 游标所在字元大小写切换 3.6 指令重复
nx 删除n个字元
ndd 删除n行 ns 修改n个字元 3.7 查找字符串 /字符串 从当前游标向后查找该字符串
字符串 从当前游标向前查找该字符串 n 从当前游标向后查找下一个字符串 N 从当前游标向前查找下一个字符串 3.8 查看编辑状况 <Ctrl> + g 显示正在编辑的文件名、当前游标所在行数、文件总行数、文件是否被修改
:wq 把编辑内容存入文件,并退出vi。
:x 把编辑内容存入文件,并退出vi。 ZZ 把编辑内容存入文件,并退出vi。 :w file1 将内容保存至文件file1中,注意:此时编辑的仍为原文件 :w! file1 将内容覆盖保存至文件file1中,如文件file1存在,:w file1将禁止执行 :q 若文件未修改,可退出vi;文件若经修改而又未保存,这样就无法退出vi,用户必须先以:w来保存编辑内容再以:q退出vi,或是以:q!来放弃编辑内容。 :q! 放弃编辑内容,使文件保持原样,并退出vi。 :sh 暂时退出vi,这时UNIX建立一个新的shell给你,当你完成需要执行的指令后,可使用[Ctrl]+[D]返回原来编辑的地方。 [Ctrl]+[Z] 暂时退出vi,回到上一层的shell,将当前执行的vi移至后台,当工作完成后,可用指令fg将刚才被搁置的vi从后台重新调回前台。
五、环境设置 :set 显示已设置的环境状况
:set all 显示所有的环境设置选项 :set nu 显示行号 :set nonu 不显示行号 :set ts = n 设置Tab键的长度为n 六、执行指令
: 10 ,
20d 删除第10行至第20行的内容
:10d 删除第10行的内容 :%d 删除全部内容 : 10 , 20co30 将第10行至第20行的内容复制到第30行之后 : 10 , 20mo30 将第10行至第20行的内容移动到第30行之后 : 1 , $s/old/new 将第1行至最后一行中的old替换成new : 1 , $s/^/new 将第1行至最后一行的内容前面插入new : 10 将游标移至第10行 七、其他指令 . 重复前一指令。
u 取消前一条命令。 U 取消作用于现在这行的一切指令。 Ctrl + l 刷新屏幕显示。 :f 或<Ctrl> + g 告诉用户有关现行编辑文件的数据。
:sh 切换到shell状态,exit返回
|
|
来自: forever3016 > 《Linux》