VIM编辑器命令详解.docx_第1页
VIM编辑器命令详解.docx_第2页
VIM编辑器命令详解.docx_第3页
VIM编辑器命令详解.docx_第4页
VIM编辑器命令详解.docx_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

vi常用命令2009-10-02 11:15Vi常用命令(1) 进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename.filename :打开多个文件,依次编辑(2) 移动光标vi可以直接用键盘上的光标键来上下左右移动,但正规的vi是用小写英文字母h、j、k、l,分别控制光标左、下、上、右移一格。按Ctrl+B:屏幕往后移动一页。常用按Ctrl+F:屏幕往前移动一页。常用按Ctrl+U:屏幕往后移动半页。按Ctrl+D:屏幕往前移动半页。按 0 (数字零):移动文章的开头。常用按 G:移动到文章的最后。常用按 w:光标跳到下个word的开头。常用按 e:光标跳到下个word的字尾。按 b:光标回到上个word的开头。按 $:移到光标所在行的行尾。常用按 :移到该行第一个非空白的字符。按 0:移到该行的开头位置。常用按 #:移到该行的第#个位置,例:51、121。常用(3) 删除文字x:每按一次删除光标所在位置的后面一个字符。超常用#x:例如,6x 表删除光标所在位置的后面6个字符。常用X:大字的X,每按一次删除光标所在位置的前面一个字符。#X:例如,20X 表删除光标所在位置的前面20个字符。dd:删除光标所在行。超常用#dd:例如,6dd表删除从光标所在的该行往下数6行之文字。常用(4) 复制yw:将光标所在处到字尾的字符复制到缓冲区中。(想在和#x、#X的功能相反)p:将缓冲区内的字符粘贴到光标所在位置(指令yw与p必须搭配使用)。yy:复制光标所在行。超常用p:复制单行到您想粘贴之处。(指令yy与p必须搭配使用)#yy:如:6yy表示拷贝从光标所在的该行往下数6行之文字。常用p:复制多行到您想粘贴之处。(指令#yy与p必须搭配使用)ayy:将复制行放入buffer a, vi提供buffer功能,可将常用的数据存在bufferap:将放在buffer a的数据粘贴。b3yy:将三行数据存入buffer b。b3p:将存在buffer b的资料粘贴(5) 取代r: 取代光标所在处的字符:常用R:取代字符直到按Esc为止。(6) 复原(undo)上一个指令u:假如您误操作一个指令,可以马上按u,回复到上一个操作。超常用.: .可以重复执行上一次的指令。(7) 更改cw:更改光标所在处的字到字尾$处。c#w:例如,c3w代表更改3个字。(8) 跳至指定行Ctrl+G:列出光标所在行的行号。#G:例如,15G,表示移动光标至文章的第15行行首。常用命令行指令简介读者您要使用命令行指令之前,请记得先按Esc键确定您已经处于Command mode下后,再按冒号“:”或“/”或“?”三键的其中一键进入Last line mode。1列出行号set nu: 输入“set nu”后,会在文章的每一行前面列出行号。2跳到文章的某一行#:井号代表一个数字,在Last line mode提示符号“:”前输入数字,再按Enter就会跳到该行了,如:15Enter就会跳到文章的第15行。常用3寻找字符串/关键字:先按/,再输入您想寻找的字,如果第一次找的关键字不是您相尽可能的,可以一直按n会往下寻找到您要的关键字为止。?关键字:先按?,再输入您想寻找的字,如果第一次找的关键字不是您想要的,可以按n会往前寻找到您要的关键字为止。4取代字符串1, $s/string/replae/g:在last line mode输入“1,$s/string/replace/g”会将全文的string字符串取代为replace字符串,其中1,$s就是指搜寻区间为文章从头至尾的意思,g则是表示全部取代不必确认。%s/string/replace/c:同样会将全文的string字符串取代为replace字符串,和上面指令不同的地方是,%s和1,$s是相同的功能,c则是表示要替代之前必须再次确认是否取代。1,20s/string/replace/g:将1至20行间的string替代为relpace字符串。5存文件w:在命令行提示符号“:”前按w即可将文件存起来。超常用#,# w filename:如果您想摘取文章的某一段,存成另一个文件,可用这个指令#代表行号,例如30,50 w nice,将您正在编辑文章的第3050行存成nice这个文件。6离开q:按q就离开,有时如果无法离开vi,可搭配“!:强置离开vi,如“q!”qw:一般建议离开时,搭配w一起使用,如此离开时还可存文件。光标控制命令 命令 光标移动h或h 向左移一个字符j或j或n 向下移一行k或p 向上移一行l或空格 向右移一个字符G 移到文件的最后一行nG 移到文件的第n行w 移到下一个字的开头W 移到下一个字的开头,忽略标点符号b 移到前一个字的开头B 移到前一个字的开头,忽略标点符号L 移到屏幕的最后一行M 移到屏幕的中间一行H 移到屏幕的第一行e 移到下一个字的结尾E 移到下一个字的结尾,忽略标点符号( 移到句子的开头) 移到句子的结尾 移到段落的开头 移到下一个段落的开头0或| 移到当前行的第一列n| 移到当前行的第n列 移到当前行的第一个非空字符$ 移到当前行的最后一个字符+或return 移到下一行的第一个字符- 移到前一行的第一个非空字符在vi中添加文本命令 插入动作a 在光标后插入文本A 在当前行插入文本i 在光标前插入文本I 在当前行前插入文本o 在当前行的下边插入新行O 在当前行的上边插入新行:r file 读入文件file内容,并插在当前行后:nr file 读入文件file内容,并插在第n行后escape 回到命令模式v char 插入时忽略char的指定意义,这是为了插入特殊字符在vi中删除文本命令 删除操作x 删除光标处的字符,可以在x前加上需要删除的字符数目nx 从当前光标处往后删除n个字符X 删除光标前的字符,可以在X前加上需要删除的字符数目nX 从当前光标处往前删除n个字符dw 删至下一个字的开头ndw 从当前光标处往后删除n个字dG 删除行,直到文件结束dd 删除整行ndd 从当前行开始往后删除db 删除光标前面的字ndb 从当前行开始往前删除n字:n,md 从第m行开始往前删除n行d或d$ 从光标处删除到行尾dcursor_command 删除至光标命令处,如dG将从当产胆行删除至文件的末尾h或backspace 插入时,删除前面的字符w 插入时,删除前面的字修改vi文本每个命令前面的数字表示该命令重复的次数命令 替换操作rchar 用char替换当前字符R text escape 用text替换当前字符直到换下Esc键stext escape 用text代替当前字符S或cctext escape 用text代替整行cwtext escape 将当前字改为textCtext escape 将当前行余下的改为textcG escape 修改至文件的末尾ccursor_cmd text escape 从当前位置处到光标命令位置处都改为text在vi中查找与替换命令 查找与替换操作/text 在文件中向前查找text?text 在文件中向后查找textn 在同一方向重复查找N 在相反方向重复查找ftext 在当前行向前查找textFtext 在当前行向后查找textttext 在当前行向前查找text,并将光标定位在text的第一个字符Ttext 在当前行向后查找text,并将光标定位在text的第一个字符:set ic 查找时忽略大小写:set noic 查找时对大小写敏感:s/oldtext/newtext 用newtext替换oldtext:m,ns/oldtext/newtext 在m行通过n,用newtext替换oldtext& 重复最后的:s命令:g/text1/s/text2/text3 查找包含text1的行,用text3替换text2:g/text/command 在所有包含text的行运行command所表示的命令:v/text/command 在所有不包含text的行运行command所表示的命令在vi中复制文本命令 复制操作yy 将当前行的内容放入临时缓冲区nyy 将n行的内容放入临时缓冲区p 将临时缓冲区中的文本放入光标后P 将临时缓冲区中的文本放入光标前(a-z)nyy 复制n行放入名字为圆括号内的可命名缓冲区,省略n表示当前行(a-z)ndd 删除n行放入名字为圆括号内的可命名缓冲区,省略n表示当前行(a-z)p 将名字为圆括号的可命名缓冲区的内容放入当前行后(a-z)P 将名字为圆括号的可命名缓冲区的内容放入当前行前在vi中撤消与重复命令 撤消操作u 撤消最后一次修改U 撤消当前行的所有修改. 重复最后一次修改, 以相反的方向重复前面的f、F、t或T查找命令; 重复前面的f、F、t或T查找命令np 取回最后第n次的删除(缓冲区中存有一定次数的删除内容,一般为9)n 重复前面的/或?查找命令N 以相反方向重复前面的/或?命令保存文本和退出vi命令 保存和/或退出操作:w 保存文件但不退出vi:w file 将修改保存在file中但不退出vi:wq或ZZ或:x 保存文件并退出vi:q! 不保存文件,退出vi:e! 放弃所有修改,从上次保存文件开始再编辑vi中的选项选项 作用:set all 打印所有选项:set nooption 关闭option选项:set nu 每行前打印行号:set showmode 显示是输入模式还是替换模式:set noic 查找时忽略大小写:set list 显示制表符(I)和行尾符号:set ts=8 为文本输入设置tab stops:set window=n 设置文本窗口显示n行vi的状态选项 作用:.= 打印当前行的行号:= 打印文件中的行数g 显示文件名、当前的行号、文件的总行数和文件位置的百分比:l 使用字母l来显示许多的特殊字符,如制表符和换行符在文本中定位段落和放置标记选项 作用 在第一列插入来定义一个段落 回到段落的开头处 向前移到下一个段落的开头处m(a-z) 用一个字母来标记当前位置,如用mz表示标记z(a-z) 将光标移动到指定的标记,如用z表示移动到z在vi中连接行选项 作用J 将下一行连接到当前行的末尾nJ 连接后面n行光标放置与屏幕调整选项 作用H 将光标移动到屏幕的顶行nH 将光标移动到屏幕顶行下的第n行M 将光标移动到屏幕的中间L 将光标移动到屏幕的底行nL 将光标移动到屏幕底行上的第n行e(ctrl+e) 将屏幕上滚一行y 将屏幕下滚一行u 将屏幕上滚半页d 将屏幕下滚半页b 将屏幕上滚一页f 将屏幕下滚一页l 重绘屏幕z-return 将当前行置为屏幕的顶行nz-return 将当前行下的第n行置为屏幕的顶行z. 将当前行置为屏幕的中央nz. 将当前行上的第n行置为屏幕的中央z- 将当前行置为屏幕的底行nz- 将当前行上的第n行置为屏幕的底行vi中的shell转义命令选项 作用:!command 执行shell的command命令,如:!ls:! 执行前一个shell命令:r!command 读取command命令的输入并插入,如:r!ls会先执行ls,然后读入内容:w!command 将当前已编辑文件作为command命令的标准输入并执行command命令,如:w!grep all:cd directory 将当前工作目录更改为directory所表示的目录:sh 将启动一个子shell,使用d(ctrl+d)返回vi:so file 在shell程序file中读入和执行命令vi中的宏与缩写(避免使用控制键和符号,不要使用字符K、V、g、q、v、*、=和功能键)选项 作用:map key command_seq 定义一个键来运行command_seq,如:map e ea,无论什么时候都可以e移到一个字的末尾来追加文本:map 在状态行显示所有已定义的宏:umap key 删除该键的宏:ab string1 string2 定义一个缩写,使得当插入string1时,用string2替换string1。当要插入文本时,键入string1然后按Esc键,系统就插入了string2:ab 显示所有缩写:una string 取消string的缩写在vi中缩进文本选项 作用i(ctrl+i)或tab 插入文本时,插入移动的宽度,移动宽度是事先定义好的:set ai 打开自动缩进:set sw=n 将移动宽度设置为n个字符n 使n行都向右移动一个宽度,例如3就将接下来的三行每行都向右移动一个移动宽度 vi 编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对 Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑 器,学会它后,您将在Linux的世界里畅行无阻。 1、vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 1) 命令行模式command mode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。 2) 插入模式(Insert mode) 只有在Insert mode下,才可以做文字输入,按ESC键可回到命令行模式。 3) 底行模式(last line mode) 将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等。 不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。 2、vi的基本操作 a) 进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面: $ vi myfile 不过有一点要特别注意,就是您进入vi之后,是处于命令行模式(command mode),您要切换到插入模式(Insert mode)才能够输入文字。初次使用vi的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入vi后,先不要乱动,转换到 插入模式(Insert mode)再说吧! b) 切换至插入模式(Insert mode)编辑文件 在命令行模式(command mode)下按一下字母i就可以进入插入模式(Insert mode),这时候你就可以开始输入文字了。 c) Insert 的切换 您目前处于插入模式(Insert mode),您就只能一直输入文字,如果您发现输错了字!想用光标键往回移动,将该字删除,就要先按一下ESC键转到命令行模式(command mode)再删除文字。 d) 退出vi及保存文件 在命令行模式(command mode)下,按一下:冒号键进入Last line mode,例如: : w filename (输入 w filename将文章以指定的文件名filename保存) : wq (输入wq,存盘并退出vi) : q! (输入q!, 不存盘强制退出vi) 3、命令行模式(command mode)功能键 1). 插入模式 按i切换进入插入模式insert mode,按“i”进入插入模式后是从光标当前位置开始输入文件; 按a进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字; 按o进入插入模式后,是插入新的一行,从行首开始输入文字。 2). 从插入模式切换为命令行模式 按ESC键。 3). 移动光标 vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母h、j、k、l,分别控制光标左、下、上、右移一格。 按ctrl+b:屏幕往“后”移动一页。 按ctrl+f:屏幕往“前”移动一页。 按ctrl+u:屏幕往“后”移动半页。 按ctrl+d:屏幕往“前”移动半页。 按数字0:移到文章的开头。 按G:移动到文章的最后。 按$:移动到光标所在行的“行尾”。 按:移动到光标所在行的“行首” 按w:光标跳到下个字的开头 按e:光标跳到下个字的字尾 按b:光标回到上个字的开头 按#l:光标移到该行的第#个位置,如:5l,56l。 4). 删除文字 x:每按一次,删除光标所在位置的“后面”一个字符。 #x:例如,6x表示删除光标所在位置的“后面”6个字符。 X:大写的X,每按一次,删除光标所在位置的“前面”一个字符。 #X:例如,20X表示删除光标所在位置的“前面”20个字符。 dd:删除光标所在行。 #dd:从光标所在行开始删除#行 5). 复制 yw:将光标所在之处到字尾的字符复制到缓冲区中。 #yw:复制#个字到缓冲区 yy:复制光标所在行到缓冲区。 #yy:例如,6yy表示拷贝从光标所在的该行“往下数”6行文字。 p:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。 6). 替换 r:替换光标所在处的字符。 R:替换光标所到之处的字符,直到按下ESC键为止。 7). 回复上一次操作 u:如果您误执行一个命令,可以马上按下u,回到上一个操作。按多次“u”可以执行多次回复。 8). 更改 cw:更改光标所在处的字到字尾处 c#w:例如,c3w表示更改3个字 9). 跳至指定的行 ctrl+g列出光标所在行的行号。 #G:例如,15G,表示移动光标至文章的第15行行首。 4、Last line mode下命令简介 在使用last line mode之前,请记住先按ESC键确定您已经处于command mode下后,再按:冒号即可进入last line mode。 A) 列出行号 set nu:输入set nu后,会在文件中的每一行前面列出行号。 B) 跳到文件中的某一行 #:#号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。 C) 查找字符 /关键字:先按/键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按n会往后寻找到您要的关键字为止。 ?关键字:先按?键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按n会往前寻找到您要的关键字为止。 D) 保存文件 w:在冒号输入字母w就可以将文件保存起来。 E) 离开vi q:按q就是退出,如果无法离开vi,可以在q后跟一个!强制离开vi。 wq:一般建议离开时,搭配w一起使用,这样在退出的时候还可以保存文件。 5、vi命令列表 1、下表列出命令模式下的一些键的功能: h 左移光标一个字符 l 右移光标一个字符 k 光标上移一行 j 光标下移一行 光标移动至行首 0 数字“0”,光标移至文章的开头 G 光标移至文章的最后 $ 光标移动至行尾 Ctrl+f 向前翻屏 Ctrl+b 向后翻屏 Ctrl+d 向前翻半屏 Ctrl+u 向后翻半屏 i 在光标位置前插入字符 a 在光标所在位置的后一个字符开始增加 o 插入新的一行,从行首开始输入 ESC 从输入状态退至命令状态 x 删除光标后面的字符 #x 删除光标后的个字符 X (大写X),删除光标前面的字符 #X 删除光标前面的#个字符 dd 删除光标所在的行 #dd 删除从光标所在行数的#行 yw 复制光标所在位置的一个字 #yw 复制光标所在位置的#个字 yy 复制光标所在位置的一行 #yy 复制从光标所在行数的#行 p 粘贴 u 取消操作 cw 更改光标所在位置的一个字 #cw 更改光标所在位置的#个字 2、下表列出行命令模式下的一些指令 w filename 储存正在编辑的文件为filename wq filename 储存正在编辑的文件为filename,并退出vi q! 放弃所有修改,退出vi set nu 显示行号 /或? 查找,在/后输入要查找的内容 n 与/或?一起使用,如果查找的内容不是想要找的关键字,按n或向后(与/联用)或向前(与?联用)继续查找,直到找到为止。 对于第一次用vi,有几点注意要提醒一下: 1、用vi打开文件后,是处于命令行模式(command mode),您要切换到插入模式(Insert mode)才能够输入文字。切换方法:在命令行模式(command mode)下按一下字母i就可以进入插入模式(Insert mode),这时候你就可以开始输入文字了。 2、编辑好后,需从插入模式切换为命令行模式才能对文件进行保存,切换方法:按ESC键。 3、保存并退出文件:在命令模式下输入:wq即可!(别忘了wq前面的:)linux vi命令简介linux vi命令是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。linux vi命令不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。linux vi命令没有菜单,只有命令,且命令繁多。Vi有三种基本工作模式:命令行模式、文本输入模式和末行模式。命令行模式任何时候,不管用户处于何种模式,只要按一下键,即可使linux vi命令行模式;我们在shell环境(提示符为$)下输入启动linux vi命令,进入编辑器时,也是处于该模式下。在该模式下,用户可以输入各种合法的linux vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的linux vi命令,则linux vi命令在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。文本输入模式在命令模式下输入插入命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键即可。末行模式末行模式也称ex转义模式。linux vi命令和Ex编辑器的功能是相同的,二者主要区别是用户界面。在Vi中,命令通常是单个键,例如i、a、o等;而在Ex中,命令是以按回车键结束的正文行。linux vi命令有一个专门的“转义”命令,可访问很多面向行的Ex命令。在命令模式下,用户按“:”键即可进入末行模式下,此时linux vi命令会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,linux vi命令自动回到命令模式。例如::1,$s / A / a / g则从文件第一行至文件尾将大写A全部替换成小写a。若在末行模式下输入命令过程中改变了主意,可按键,或用退格键将输入的命令全部删除之后,再按一下退格键,即可使linux vi命令回到命令模式下。如果要从命令模式转换到编辑模式,可以键入命令a或者i;如果需要从文本模式返回,则按Esc键即可。在命令模式下输入“:”即可切换到末行模式,然后输入命令。linux vi命令的进入与退出linux vi命令的进入用户登录到系统中之后,系统给出提示符“$”。在提示符后键入Vi和想要编辑(或建立)的文件名,便可进入Vi。例1 键入命令:$ vi example.c屏幕显示如下:“ example.c” New File如果只键入Vi,而不带文件名,也可以进入Vi。之后在光标处键入文件内容,退出Vi时,只需在退出命令后输入文件名即可。进入Vi之后,首先进入的就是命令模式,也就是说等待命令输入而不是文本输入。这时输入的字母都将作为命令来解释。光标停在屏幕第一行首位上(用表示),其余各行行首均有一个“”符号,表示该行为空行。最后一行也称状态行,显示出当前正在编辑的文件名以及其状态。如本例是New File,表示example.c是一个新建的文件。如果example.c文件已在系统中存在,那么输入上述命令后,则在屏幕上显示出该文件的内容,并且光标停在第一行的首位,在状态行显示出该文件的文件名、行数和字符数。例2 键入命令:$ vi example.c然后键入:#includemain ( ) int k ;for ( k=0 ; k3 ; k+) add( );add( ) static int x=0;x+ ;printf(“x = %dn”, x);“ example.c” New File注意,在这里我们为了节省篇幅起见,屏幕只显示15行。事实上,初始的显示行数与用户所用终端有关,一般的CRT终端可显示25行。在窗口系统中,显示行数与运行linux vi命令的那个窗口有关。然而我们可以对显示行数进行设置。例如,在能显示25行的CRT终端上,让Vi只显示15行。设置的方法将在本节后面介绍。当用linux vi命令建立一个新文件时,在进入linux vi命令中也可以不给出文件名,当编辑完文件需要保存数据时,再由用户指定文件名。进入linux vi命令时,用户不仅可以指定一个待编辑的文件名,而且还有许多附加操作。如果希望在进入linux vi命令之后,光标处于文件中特定的某行上,可在linux vi命令后加上任选项+n,其中n为指定的行数。例3 键入命令:$ vi +5 example1.c后,屏幕显示如下:#includemain ( ) int k ;for ( k=0 ; k3 ; k+) add( );add( ) static int x=0;x+ ;printf(“x = %dn”, x);“ example.c” 12 lines, 125 characters光标将位于文件example1.c中的第5行上。如果希望在进入linux vi命令之后光标处于文件最末行,则只需把命令中附加项“+”后面的数字n省略掉即可。在进入linux vi命令时,除了可以指定一个光标起始行号之外,还可以在命令中指定一个模式串,此时在进入linux vi命令后,光标就处于文件中第一个与指定模式串相匹配的那行上。例4 键入命令:$ vi +/int example1.c屏幕显示如下:#includemain ( ) int k ;for ( k=0 ; k3 ; k+) add( );add( ) static int x=0;x+ ;printf(“x = %dn”, x);“ example.c” 12 lines, 125 characters光标将位于文件example1.c中的第3行上。使用linux vi命令可以同时编辑多个文件,只要在进入linux vi命令的命令中写入所要操作的文件即可,还可以使用通配符。例5 键入命令:$ vi *.cat就可以编辑所有后缀为cat的文件了。当然,您还可以使用shell中内置的模式匹配来装载文件,这样会更富技巧性。一旦您在命令行中包含了所有的待编辑文件名,就可以在linux vi命令中方便地移来移去。退出Vi当编辑完文件,准备退出Vi返回到shell时,可以使用以下几种方法之一。在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出,返回到shell;若当前编辑的文件没被修改过,则Vi直接退出, 返回到shell。在末行模式下,输入命令:wlinux vi命令保存当前编辑文件,但并不退出,而是继续等待用户输入命令。在使用w命令时,可以再给编辑文件起一个新的文件名。例6:w newfile此时Vi将把当前文件的内容保存到指定的newfile中,而原有文件保持不变。若newfile是一个已存在的文件,则Vi在显示窗口的状态行给出提示信息:File exists (use ! to override)此时,若用户真的希望用文件的当前内容替换newfile中原有内容,可使用命令:w! newfile否则可选择另外的文件名来保存当前文件。在末行模式下,输入命令:q系统退出linux vi命令返回到shell。若在用此命令退出Vi时,编辑文件没有被保存,则Vi在显示窗口的最末行显示如下信息:No write since last change (use ! to overrides)提示用户该文件被修改后没有保存,然后linux vi命令并不退出,继续等待用户命令。若用户就是不想保存被修改后的文件而要强行退出linux vi命令时,可使用命令:q!linux vi命令放弃所作修改而直接退到shell下。在末行模式下,输入命令:wqlinux vi命令将先保存文件,然后退出linux vi命令返回到shell。在末行模式下,输入命令:x该命令的功能同命令模式下的ZZ命令功能相同。linux vi命令中的行号linux vi命令中的许多命令都要用到行号及行数等数值。若编辑的文件较大时,自己去数是非常不方便的。为此linux vi命令提供了给文本加行号的功能。这些行号显示在屏幕的左边,而相应行的内容则显示在行号之后。使用的命令为:在末行方式下输入命令::set number需要说明的是,这里加的行号只是显示给用户看的,它们并不是文件内容的一部分。linux vi命令一览表2009年08月31日 星期一 22:52进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename.filename :打开多个文件,依次进行编辑移动光标类命令/bh :光标左移一个字符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:向文件尾翻一屏Ctrlb;向文件首翻一屏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:执行she

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论