vi命令大全
- 格式:doc
- 大小:37.50 KB
- 文档页数:8
vim编辑器常⽤命令vi有3个模式:插⼊模式、命令模式、低⾏模式。
插⼊模式:在此模式下可以输⼊字符,按ESC将回到命令模式。
命令模式:可以移动光标、删除字符等。
低⾏模式:可以保存⽂件、退出vi、设置vi、查找等功能(低⾏模式也可以看作是命令模式⾥的)。
⼀、打开⽂件、保存、关闭⽂件(vi命令模式下使⽤)vi filename //打开filename⽂件:w //保存⽂件:w //保存⾄⽂件:q //退出编辑器,如果⽂件已修改请使⽤下⾯的命令:q! //退出编辑器,且不保存:wq //退出编辑器,且保存⽂件⼆、插⼊⽂本或⾏(vi命令模式下使⽤,执⾏下⾯命令后将进⼊插⼊模式,按ESC键可退出插⼊模式)a //在当前光标位置的右边添加⽂本i //在当前光标位置的左边添加⽂本A //在当前⾏的末尾位置添加⽂本I //在当前⾏的开始处添加⽂本(⾮空字符的⾏⾸)O //在当前⾏的上⾯新建⼀⾏o //在当前⾏的下⾯新建⼀⾏R //替换(覆盖)当前光标位置及后⾯的若⼲⽂本J //合并光标所在⾏及下⼀⾏为⼀⾏(依然在命令模式)三、移动光标(vi命令模式下使⽤)1、使⽤上下左右⽅向键2、命令模式下:h 向左、j 向下、k 向上、l 向右。
空格键向右、Backspace 向左、Enter 移动到下⼀⾏⾸、- 移动到上⼀⾏⾸。
四、删除、恢复字符或⾏(vi命令模式下使⽤)x //删除当前字符nx //删除从光标开始的n个字符dd //删除当前⾏ndd //向下删除当前⾏在内的n⾏u //撤销上⼀步操作U //撤销对当前⾏的所有操作五、搜索(vi命令模式下使⽤)/vpser //向光标下搜索vpser字符串vpser //向光标上搜索vpser字符串n //向下搜索前⼀个搜素动作N //向上搜索前⼀个搜索动作六、跳⾄指定⾏(vi命令模式下使⽤)n+ //向下跳n⾏n- //向上跳n⾏nG //跳到⾏号为n的⾏G //跳⾄⽂件的底部七、设置⾏号(vi命令模式下使⽤):set nu //显⽰⾏号:set nonu //取消显⽰⾏号⼋、复制、粘贴(vi命令模式下使⽤)yy //将当前⾏复制到缓存区,也可以⽤ "ayy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
AIX上对文件进行编辑通常使用vi命令,包括一些linux命令。
1.vi与view的区别vi打开文件后可直接进行编辑;view为以只读方式打开文件,也可以编辑,保存时使用w!保存或x!保存。
-----wq与x区别(wq与x的区别一个是强制写入,一个是当有修改时才写入。
)vi的自动补全:依次按esc键,\键补齐文件名;2.ctrl+z与ctrl+c的区别ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样.ctrl+c是强制中断程序的执行,而ctrl+z的是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行.例如:当你vi一个文件是,如果需要用shell执行别的操作,但是你又不打算关闭vi,因为你得存盘推出,你可以简单的按下ctrl+z,shell会将vi进程挂起~,当你结束了那个shell操作之后,你可以用fg命令继续vi你的文件.用法:ps -f|grep view 找到对应的进程号fg+进程号即可恢复;3.touch 创建新文件4.mkdir -p 创建多级目录5.move -f 强制移动/重命名6.man 查看帮助7.chmod +x 文件名或chmod 777 文件名(计算方法:我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为:111 101 100 转换为十进制754)8.>> 为重定向追加>为重定向覆盖;9.cat为查看文件内容;10.clear 清空屏幕11.rm + 文件名平时最好用rm -f +文件名;rm -rf 命令尽量不要使用。
12.文件编辑:1)ESC模式下,大写Y为赋值一行,p为粘贴在光标所在行下一行;2)u为回退,AIX中只能回退一次,但linux中可回退多次操作之前;3)到行首的命令为shift+6 ^4)到行尾的命令为shift+4 $5)h j k l分别为左下上右移动光标(默认为1行,前加数字代表几行)6)e单词尾b单词首;M屏幕中间行H屏幕第一行L屏幕最尾行7)ctrl+u为向上翻半页;ctrl+d为向下翻半页;8)ctrl+b为向上翻整页;ctrl+f为向下翻整页;9)编辑单词时,c+w从单词首字母到尾字母变为编辑模式;10)dw为删除整个单词;11)o为从下一行开始插入;12)dd删除一行,前加数字为删几行;可以执行p将删除的行数粘贴在其他位置;13)>> 与<< 命令为缩进命令;14)}段尾{段首;15)s 替换当前字符16)x 删除当前字符;17)d+$ 删除到行尾d+^删除到行首;13.命令行模式:1)wq保存退出;2)w! 文件名表示另存为;3)e 或e! 刷新,将文件刷新至未保存之前的状态;4)/向下查找?向上查找;(n与shift+n)5)G为跳至文件末尾6)[[ 为跳到本函数头]]下一个函数头也可作为跳到文件头用7):! 为跳出文件编辑,在环境中执行如:!pwd8)1,20 d 表删除从第一行到第20行;9)set用法常用:set nu或set number显示行数;set nonu 或set nonumber关闭显示;10)替换::s/p1/p2/g:将当前行中所有p1均用p2替代:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代:g/p1/s//p2/g:将文件中所有p1均用p2替换11)从文件内查找含有待查找内容:find ./ -name“文件名(可用*代替)”|xargs grep 待查找内容grep 待查找内容目录/*(当前目录用”./”根目录为” / “)12)diff 文件1 文件2比较文件1与文件2的不同以> <区分可以diff t1 t2 > t3 将不同处输出至文件3中13)同一机器内即同一IP地址的环境下,不同用户间权限允许的情况下可用cp拷贝文件;14)Zjyw本地cd localpathftp命令ftp 对方地址用户名/密码cd 对方路径将本地文件上传对方路径:put获取文件到本地路径下:getpassive(主动模式)一般用二进制流传送文件:bin命令ftp命令内本地路径改变:lcd ~/muluQ:还有什么方法使光标左移一个字符和右移一个字符?除了方向键。
linux文件编辑vi的常见操作命令vi是一款常用的文本编辑器,在Linux系统中被广泛使用。
下面将介绍vi的常见操作命令,帮助初学者快速掌握vi的基本使用。
1. 打开文件:使用vi命令加上要编辑的文件名,例如`vi filename`。
如果文件不存在,则会创建一个新文件。
2. 保存文件:在正常模式下,按下`:w`命令可以将文件保存。
如果文件是新创建的,需要指定文件名,例如`:w newfilename`。
3. 退出vi:在正常模式下,输入命令`:q`可以退出vi。
如果文件有未保存的修改,vi会提示保存或放弃修改。
如果想强制退出vi,可以使用命令`:q!`。
4. 插入文本:在正常模式下,按下`i`命令可以进入插入模式,在光标位置前插入文本。
按下`a`命令可以在光标位置后插入文本。
按下`o`命令可以在下一行插入新行并进入插入模式。
5. 删除文本:在正常模式下,按下`x`命令可以删除光标所在位置的字符。
按下`dd`命令可以删除整行。
按下`dw`命令可以删除一个词。
按下`d$`命令可以删除光标位置到行尾的内容。
6. 复制和粘贴文本:在正常模式下,按下`yy`命令可以复制整行。
按下`yw`命令可以复制一个词。
按下`p`命令可以粘贴复制的内容。
7. 撤销和重做:在正常模式下,按下`u`命令可以撤销上一步操作。
按下`Ctrl + r`命令可以重做被撤销的操作。
8. 查找和替换:在正常模式下,按下`/text`命令可以向下查找匹配的文本。
按下`?text`命令可以向上查找匹配的文本。
按下`:%s/old/new/g`命令可以替换全文中的old为new。
9. 移动光标:在正常模式下,按下`h`命令可以将光标向左移动一个字符。
按下`j`命令可以将光标向下移动一行。
按下`k`命令可以将光标向上移动一行。
按下`l`命令可以将光标向右移动一个字符。
按下`gg`命令可以将光标移动到文件开头。
按下`G`命令可以将光标移动到文件末尾。
v i操作命令大全HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】一vi的操作模式vi提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。
在输入模式下,用户可输入文本资料。
在指令模式下,可进行删除、修改等各种编辑动作。
在输入模式下,按Esc键切换到指令模式下。
在指令模式下,按输入指令(i、a、o等)进入输入模式。
二进入vi$ vi filename直接键入“vi + 所要编辑的文件名”,即可对指定的文件进行编辑。
如果指定的文件为新文件,则提示:“New file”,否则显示该文件的当前内容。
$ view filename以只读方式打开文件filename三指令模式3.1进入输入模式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 删除游标前一字元 dw 从游标当前位置开始向后删除一个单词 db 从游标当前位置开始向前删除一个单词 d0 从行首删除至当前游标位置 d$ 从游标当前位置删除至行尾 dd 删除游标所在行 D 同d$3.5修改操作s 修改游标所在字元,修改完成后按Esc键结束 S 修改整行内容,修改完成后按Esc键结束 r 替换当前游标所在字元 R 进入替换状态,直至按Esc键结束 cw 修改一个单词(从游标位置至词尾) cb 修改一个单词(从词首至游标位置) cc 修改整行内容,完成后按Esc 键结束,同S c0 修改行首至游标位置的内容 c$ 修改游标位置至行尾的内容 ~ 游标所在字元大小写切换3.6指令重复在指令模式中,可在指令前面加入一个数字n,则该指令会重复执行n次。
vi的常用命令
vi是Linux系统中一种常用的文本编辑器,它可以通过命令行界面进行操作。
对于初学者来说,掌握一些vi的常用命令是必不可少的。
下面是一些常见的vi命令:
1.打开文件:vi filename
2.保存文件:先按Esc键退出编辑模式,然后输入:wq
3.放弃修改:先按Esc键退出编辑模式,然后输入:q!
4.光标移动:
h:左移一个字符
j:下移一行
k:上移一行
l:右移一个字符
5.删除字符:
x:删除光标所在的字符
dd:删除光标所在的一整行
6.撤销上一步操作:u
7.查找字符:
/char:查找字符char(向下查找)
:查找字符char(向上查找)
n:继续查找下一个匹配项
N:继续查找上一个匹配项
8.替换字符:
:r filename:将filename文件的内容插入到当前光标所在位置 :s/old/new/g:将当前行的old替换为new
:%s/old/new/g:将整个文件中的old替换为new
以上是一些vi的常用命令,掌握了这些命令后,你可以更加方便地使用vi编辑器进行文本编辑。
进入vi的命令 (1)移动光标类命令 (1)屏幕翻滚类命令 (2)编辑插入文本类命令 (3)删除命令 (5)搜索及替换命令 (6)选项设置 (8)组合命令 (10)最后行方式命令 (14)寄存器操作 (15)进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename....filename :打开多个文件,依次进行编辑移动光标类命令h :光标左移一个字符l :光标右移一个字符space:光标右移一个字符Backspace:光标左移一个字符k或Ctrl+p:光标上移一行j或Ctrl+n :光标下移一行Enter :光标下移一行w或W :光标右移一个字至字首b或B :光标左移一个字至字首e或E :光标右移一个字至字尾) :光标移至句尾( :光标移至句首}:光标移至段落开头{:光标移至段落结尾nG:光标移至第n行首n+:光标下移n行n-:光标上移n行n$:光标移至第n行尾H :光标移至屏幕顶行M :光标移至屏幕中间行L :光标移至屏幕最后行0:(注意是数字零)光标移至当前行首$:光标移至当前行尾^ 光标移到行首f 光标移到当前光标位置后面的第一个指定的字符下F 光标移到当前光标位置前面的第一个指定的字符下t 光标移到当前光标位置后面的第一个指定的字符前T 光标移到当前光标位置前面的第一个指定的字符前% 光标移动到与当前括号匹配的括号处:n 光标移动到指定行按数字:0:移到文章的开头。
按G:移动到文章的最后。
按w:光标跳到下个字的开头按e:光标跳到下个字的字尾按b:光标回到上个字的开头按:#l:光标移到该行的第#个位置,如:5l,56l。
Vi指令大全1 进入vi的命令2 移动光标类命令3 屏幕翻滚类命令4 插入文本类命令5 删除命令6 搜索及替换命令7 选项设置8 最后行方式命令9 寄存器操作进入vi的命令vi filename: 打开或新建文件,并将光标置于第一行首vi +n filename: 打开文件,并将光标置于第n行首vi + filename: 打开文件,并将光标置于最后一行首vi +/pattern filename: 打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename: 在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename....filename: 打开多个文件,依次进行编辑移动光标类命令h: 光标左移一个字符l: 光标右移一个字符space: 光标右移一个字符Backspace: 光标左移一个字符k或Ctrl+p: 光标上移一行j或Ctrl+n: 光标下移一行Enter: 光标下移一行w或W : 光标右移一个字至字首b或B : 光标左移一个字至字首e或E : 光标右移一个字至字尾): 光标移至句尾(: 光标移至句首}: 光标移至段落开头{: 光标移至段落结尾nG: 光标移至第n行首n+: 光标下移n行n-: 光标上移n行n$: 光标移至第n行尾H: 光标移至屏幕顶行M: 光标移至屏幕中间行L: 光标移至屏幕最后行0: 光标移至当前行首$: 光标移至当前行尾屏幕翻滚类命令Ctrl+u: 向文件首翻半屏Ctrl+d: 向文件尾翻半屏Ctrl+f: 向文件尾翻一屏Ctrl+b: 向文件首翻一屏nz: 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
插入文本类命令i: 在光标前I: 在当前行首a: 光标后A: 在当前行尾o: 在当前行之下新开一行O: 在当前行之上新开一行r: 替换当前字符R: 替换当前字符及其后的字符,直至按ESC键s: 从当前光标位置处开始,以输入的文本替代指定数目的字符S: 删除指定数目的行,并以所输入文本代替之ncw或nCW: 修改指定数目的字nCC: 修改指定数目的行删除命令ndw或ndW: 删除光标处开始及其后的n-1个字do: 删至行首d$: 删至行尾ndd: 删除当前行及其后n-1行x或X: 删除一个字符,x删除光标后的,而X删除光标前的Ctrl+u: 删除输入方式下所输入的文本搜索及替换命令/pattern: 从光标开始处向文件尾搜索pattern?pattern: 从光标开始处向文件首搜索patternn: 在同一方向重复上一次搜索命令N: 在反方向上重复上一次搜索命令:s/p1/p2/g: 将当前行中所有p1均用p2替代:n1,n2s/p1/p2/g: 将第n1至n2行中所有p1均用p2替代:g/p1/s//p2/g: 将文件中所有p1均用p2替换选项设置all: 列出所有选项设置情况term: 设置终端类型ignorance: 在搜索中忽略大小写list: 显示制表位(Ctrl+I)和行尾标志($)number: 显示行号report: 显示由面向行的命令修改过的数目terse: 显示简短的警告信息warn: 在转到别的文件时若没保存当前文件则显示NO write信息nomagic: 允许在搜索模式中,使用前面不带“\”的特殊字符nowrapscan: 禁止vi在搜索到达文件两端时,又从另一端开始mesg: 允许vi显示其他用户用write写到自己终端上的信息最后行方式命令:n1,n2 co n3: 将n1行到n2行之间的内容拷贝到第n3行下:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下:n1,n2 d: 将 n1行到n2行之间的内容删除:w: 保存当前文件:e filename: 打开文件filename进行编辑:x: 保存当前文件并退出:q: 退出vi:q!: 不保存文件并退出vi:!command: 执行shell命令command:n1,n2 w!command: 将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入:r!command: 将命令command的输出结果放到当前行寄存器操作"?nyy: 将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字"?nyw: 将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字"?nyl: 将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字"?p: 取出寄存器?中的内容并将其放到光标位置处。
Vi常用命令内容说明:命令模式光标移动方法:1、←→↑↓方向键可以向其所指定的方向移动一个字符2、n←、n→、n↑、n↓:表示左右移动n 个字符、上下移动n行。
2、一次移动多行n为数字加回车,表示向下移动n行3、向下反动一页pagedow n,向上翻动一页pageup4、0 数字零移动光标到当前行的最前面的字符5、$ 移动光标到当前行的最后一个字符。
6、G 移动到着这个文档的最后一行,nG:n为数字移动到这个文件的第n行。
7、gg 移动到这个文件的第一行末行模式,搜索与替换:1、/word从光标开始的位置向下查找一个名为word的字符串。
2、?word从光标位置开始,向上查找一个名字为word的字符串。
3、n重复前一个搜索动作。
4、N 和n正好相反。
5、:nohl 取消高亮6、:n1,n2s/word1/word2/g n1和n2是数字。
在第n1和第n2行之间寻找word1这个字符串并且将该字符串替换为word2。
Eg:100行到200行之间搜索abc替换为def “:100,200s/abc/def/g”7、:1,$s/word1/word2/g 从第一行到最后一行寻找word1字符串,并且将word1替换为word2。
8、:1,$s/word1/word2/gc从第一行到最后一行查找word1字符串,并将word1替换为word2,并且在在替换前会询问是否覆盖。
命令模式:删除,复制和粘贴1、x、X 在一行中,x为向后删除一个字符,X为向前删除一个字符。
2、dd删除光标所在行的一整行。
有剪切的功能。
3、dw 删除某个单词。
在单词前就删除整个单词,在单词中间只删除光标以后的部分。
4、d0 字母d和数字零上除光标之前的本行的所有内容。
5、D=d$ 字母D删除光标之后本行的所有内容。
6、yy复制光标所在那一整行。
7、nyy n为数字,复制光标所在的向下n 行,Eg:20yy则是复制20行。
8、p、P p为将已复制的数据粘贴到光标的下一行,P为粘贴在光标的上一行。
vi 之使用方法============================..指令模式=========游标之移动h 向左移一个字元。
j 向上移一个字元。
k 向下移一个字元。
l 向右移一个字元。
0 移至该行之首$ 移至该行之末。
^ 移至该行的第一个字元处。
H 移至视窗的第一列。
M 移至视窗的中间那列。
L 移至视窗的最後一列。
G 移至该档案的最後一列。
+ 移至下一列的第一个字元处。
- 移至上一列的第一个字元处。
( 移至该句之首。
(注一)) 移至该句之末。
{ 移至该段落之首。
(注二)} 移至该段落之末。
nG 移至该档案的第n 列。
n+ 移至游标所在位置之後的第n 列。
n- 移至游标所在位置之前的第n 列。
<Ctrl><g> 会显示该行之行号、档案名称、档案中最末行之行号、游标所在行号占总行号之百分比。
注一:句子(sentence)在vi中是指以『!』、『.』或『?』结束的一串字。
注二:段落(paragraph)在vi中是指以空白行隔开的文字。
..视窗的移动===========<Ctrl><f> 视窗往下卷一页。
<Ctrl><b> 视窗往上卷一页。
<Ctrl><d> 视窗往下卷半页。
<Ctrl><u> 视窗往上卷半页。
<Ctrl><e> 视窗往下卷一行。
<Ctrl><y> 视窗往上卷一行。
..删除、复制及修改指令介绍(此单元较少使用)=========================d(delete)、c(change)和y(yank)这一类的指令在vi 中的指令格式为:Operator + Scope = command(运算子) (范围)运算子:d 删除指令。
删除资料,但会将删除资料复制到记忆体缓冲区。
y 将资料(字组、行列、句子或段落)复制到缓冲区。
p 放置(put)指令,与d 和y 配和使用。
可将最後delete或yank的资料放置於游标所在位置之行列下。
c 修改(change)指令,类似delete与insert的组和。
删除一个字组、句子等之资料,并插入新键资料。
范围:e 由游标所在位置至该字串的最後一个字元。
w 由游标所在位置至下一个字串的第一个字元。
b 由游标所在位置至前一个字串的第一个字元。
$ 由游标所在位置至该行的最後一个字元。
0 由游标所在位置至该行的第一个字元。
) 由游标所在位置至下一个句子的第一个字元。
( 由游标所在位置至该句子的第一个字元。
{ 由游标所在位置至该段落的最後一个字元。
} 由游标所在位置至该段落的第一个字元。
整行动作dd 删除整行。
D 以行为单位,删除游标後之所有字元。
cc 修改整行的内容。
yy yank整行,使游标所在该行复制到记忆体缓冲区。
..删除与修改===========x 删除游标所在该字元。
X 删除游标所在之前一字元。
dd 删除游标所在该行。
r 用接於此指令之後的字元取代(replace)游标所在字元。
如:ra 将游标所在字元以a 取代之。
R 进入取代状态,直到《ESC》为止。
s 删除游标所在之字元,并进入输入模式直到《ESC》。
S 删除游标所在之该行资料,并进入输入模式直到《ESC》。
..搬移与复制==========利用delete 及put 指令可完成资料搬移之目的。
利用yank 及put 指令可完成资料复制之目的。
yank 和delete 可将指定的资料复制到记忆体缓冲区,而藉由put 指令可将缓冲区内的资料复制到萤幕上。
例:搬移一行.在该行执行dd.游标移至目的地.执行p复制一行.在该行执行yy.游标移至目的地.执行p..指令重复=========在指令模式中,可在指令前面加入一数字n,则此指令动作会重复执行n 次。
例:删除10行.10dd复制10行.10yy.游标移至目的地.p指标往下移10行.10j..取消前一动作(Undo)===================即复原执行上一指令前的内容。
u 恢复最後一个指令之前的结果。
U 恢复游标该行之所有改变。
..搜寻=====在vi中可搜寻某一字串,使游标移至该处。
/字串往游标之後寻找该字串。
?字串往游标之前寻找该字串。
n 往下继续寻找下一个相同的字串。
N 往上继续寻找下一个相同的字串。
..资料的连接===========J 句子的连接。
将游标所在之下一行连接至游标该行的後面。
若某行资料太长亦可将其分成两行,只要将游标移至分开点,进入输入模式(可利用a、i等指令)再按《Enter》即可。
..环境的设定===========:set nu 设定资料的行号。
:set nonu 取消行号设定。
:set ai 自动内缩。
:set noai 取消自动内缩。
自动内缩(automatic indentation)在编辑文件或程式时,有时会遇到需要内缩的状况,『:set ai』即提供自动内缩的功能,用下例解释之:.vi test.(进入编辑视窗後)this is the test for auto indent《Tab》start indent ←:set ai (设自动内缩)《Tab》data《Tab》data《Tab》data ←:set noai (取消自动内缩)the end of auto indent..注:<Ctrl><d> 可删除《Tab》字元。
..ex指令=======读写资料:w 将缓冲区的资料写入磁碟中。
:10,20w test 将第10行至第20行的资料写入test档案。
:10,20w>>test 将第10行至第20行的资料加在test档案之後。
:r test 将test档案的资料读入编辑缓冲区的最後。
删除、复制及搬移:10,20d 删除第10行至第20行的资料。
:10d 删除第10行的资料。
:%d 删除整个编辑缓冲区。
:10,20co30 将第10行至第20行的资料复制至第30行之後。
:10,20mo30 将第10行至第20行的资料搬移至第30行之後。
字串搜寻与取代s(substitute)指令可搜寻某行列范围。
g(global)指令则可搜寻整个编辑缓冲区的资料。
s指令以第一个满足该条件的字串为其取代的对象,若该行有数个满足该条件的字串,也仅能取代第一个,若想取代所有的字串则需加上g参数。
:1,$s/old/new/g 将档案中所有的『old』改成『new』。
:10,20s/^/ / 将第10行至第20行资料的最前面插入5个空白。
:%s/old/new/g 将编辑缓冲区中所有的『old』改成『new』。
在vi界面下使用命令:%s#/usr/bin#/bin#g可以把文件中所有路径/usr/bin换成/bin。
也可以使用命令::%s/usr/bin/bin/g其中“”是转义字符,表明其后的“/”字符是具有实际意义的字符,不是分隔符。
..恢复编辑时被中断的档案=======================在编辑过程中,若系统当掉或连线中断,而缓冲区的资料并还未被写回磁碟时,当再度回到系统,执行下列指令即可回复中断前的档案内容。
%vi -r filename..编辑多个档案=============vi亦提供同时编辑多个档案的功能,方法如下:%vi file1 file2 ..当第一个档案编修完成後,可利用『:w』将该缓冲区存档,而後再利用『:n』载入下一个档案。
==========1.交换两个字符位置xp2.上下两行调换ddp3.把文件内容反转:g/^/m0/ (未通过)4.上下两行合并J5.删除所有行dG6.从当前位置删除到行尾d$7.从当前位置复制到行尾y$ 如果要粘贴到其他地方p 就可以了由于vi 是建立在EX 上的所以当键入: 时就来到了EX 命令状态8.:ab string strings例如":ab usa United States of America" ,当你在文见里插入usa 时United States of America 就蹦出来了9.:map keys new_seq定义你当前键盘命令10.:set [all]vi or ex 的编辑状态如显示每行:set nu11.在命令状态下,nyy表示拷贝从光标行起的下n行内容,p表示paste,可刚复制的内容粘贴在光标处的下面。
12.单个字符替换用r,覆盖多个字符用R,用多个字符替换一个字符用s,整行替换用S13.:%s/old_word/new_word/g这个指令是于在整个文件中替换特定字符串14.光标控制k:上移nk 上移n行j:下移nj 下移n行将光标移到第n行,按下mk将光标移到第m行,按下"ay'k即将第n到m的行存到a寄存器,以此类推,b,c........寄存器等这样就可以将你常用的需要复用的内容粘贴到不同的寄存器中以备用想粘贴到某处,直接将光标移到某地,按下…ap 即可,以此类推,b,c........寄存器等在当前屏幕中H 跳到第一行M 跳到中间一行L 跳到最后一行15.表8-2 删除命令删除命令操作d l 删除当前字符(与x命令功能相同)d 0 删除到某一行的开始位置d ^ 删除到某一行的第一个字符位置(不包括空格或TA B字符)d w 删除到某个单词的结尾位置d 3 w 删除到第三个单词的结尾位置d b 删除到某个单词的开始位置d W 删除到某个以空格作为分隔符的单词的结尾位置d B 删除到某个以空格作为分隔符的单词的开始位置d 7 B 删除到前面7个以空格作为分隔符的单词的开始位置d)删除到某个语句的结尾位置d 4)删除到第四个语句的结尾位置d(删除到某个语句的开始位置d } 删除到某个段落的结尾位置d { 删除到某个段落的开始位置d 7 { 删除到当前段落起始位置之前的第7个段落位置d d 删除当前行d /te x t 删除从文本中出现“ t e x t”中所指定字样的位置,一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容d fc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容d tc 删除当前行直到下一个字符“ c”所出现位置之间的内容D 删除到某一行的结尾d $ 删除到某一行的结尾5 d d 删除从当前行所开始的5行内容d L 删除直到屏幕上最后一行的内容d H 删除直到屏幕上第一行的内容d G 删除直到工作缓存区结尾的内容d 1 G 删除直到工作缓存区开始的内容修改命令操作c l 更改当前字符c w 修改到某个单词的结尾位置c 3 w 修改到第三个单词的结尾位置c b 修改到某个单词的开始位置c W 修改到某个以空格作为分隔符的单词的结尾位置c B 修改到某个以空格作为分隔符的单词的开始位置c 7 B 修改到前面7个以空格作为分隔符的单词的开始位置c 0 修改到某行的结尾位置c)修改到某个语句的结尾位置c 4)修改到第四个语句的结尾位置c(修改到某个语句的开始位置c } 修改到某个段落的结尾位置c { 修改到某个段落的开始位置c 7 { 修改到当前段落起始位置之前的第7个段落位置c tc 修改当前行直到下一个字符c所出现位置之间的内容C 修改到某一行的结尾c c 修改当前行5 c c 修改从当前行所开始的5行内容.重复上一次修改!表8-4 替换命令替换命令操作s 将当前字符替换为一个或多个字符S 将当前行替换为一个或多个字符5 s 将从当前字符开始的5个字符替换为一个或多个字符vi替换使用规则::g/s1/s/s2/s3/g第一个g表示对每一个包括s1的行都进行替换,第二个g表示对每一行包括s1的行所有的s2都用s3替换s表示替换,s2是要被替换的字符串,他可以和s1相同(如果相同的话用//代替),s3是替换字符串16.fx往右移动到x 字符上Fx往左移动到x 字符上tx往右移动到x 字符前Tx往左移动到x 字符后(注意:以上四个命令中,其中x是键入的字符);分号,配合f 和t 使用,重复一次,逗号,配合f 和t 使用,反方向重复一次16.同时vi多个文件时,CTRL-SHIFT-6回到上一个文件,在本次vi的文件和上次vi的文件之间切换。