收藏 分享(赏)

VIM编辑器命令详解.docx

上传人:yjrm16270 文档编号:6800661 上传时间:2019-04-22 格式:DOCX 页数:36 大小:52.51KB
下载 相关 举报
VIM编辑器命令详解.docx_第1页
第1页 / 共36页
VIM编辑器命令详解.docx_第2页
第2页 / 共36页
VIM编辑器命令详解.docx_第3页
第3页 / 共36页
VIM编辑器命令详解.docx_第4页
第4页 / 共36页
VIM编辑器命令详解.docx_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、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 filenamefilename :打开多个文件,依次编辑(2) 移动光标vi 可以直接用键盘上的光标键来上下左右移动,但

2、正规的 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) 删除文

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 表

4、示拷贝从光标所在的该行往下数 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:更改光标所在处的字到字尾

5、$处。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就会跳到文章的

6、第 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:同样会将全文的

7、 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,可搭配“!:强置离开

8、 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

9、| 移到当前行的第 n 列 移到当前行的第一个非空字符$ 移到当前行的最后一个字符+或 return 移到下一行的第一个字符- 移到前一行的第一个非空字符在 vi 中添加文本命令 插入动作a 在光标后插入文本A 在当前行插入文本i 在光标前插入文本I 在当前行前插入文本o 在当前行的下边插入新行O 在当前行的上边插入新行:r file 读入文件 file 内容,并插在当前行后:nr file 读入文件 file 内容,并插在第 n 行后escape 回到命令模式v char 插入时忽略 char 的指定意义,这是为了插入特殊字符在 vi 中删除文本命令 删除操作x 删除光标处的字符,可以在 x

10、 前加上需要删除的字符数目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 文

11、本每个命令前面的数字表示该命令重复的次数命令 替换操作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

12、在文件中向后查找 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重复前面的 f、F 、t 或 T 查找命令“n

13、p 取回最后第 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

14、查找时忽略大小写: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 中连

15、接行选项 作用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- 将当前行

16、上的第 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 程序

17、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 s

18、tring 取消 string 的缩写在 vi 中缩进文本选项 作用i(ctrl+i)或 tab 插入文本时,插入移动的宽度,移动宽度是事先定义好的:set ai 打开自动缩进:set sw=n 将移动宽度设置为 n 个字符n 使 n 行都向右移动一个宽度,例如 3就将接下来的三行每行都向右移动一个移动宽度 vi 编辑器是所有 Unix 及 Linux 系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对 Unix 及 Linux 系统的任何版本,vi 编辑器是完全相同的,因此您可以在其他任何介绍 vi 的地方进一步了解它。Vi也是 L

19、inux 中最基本的文本编辑 器,学会它后,您将在 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)

20、底行模式(last line mode) 将文件保存或退出 vi,也可以设置编辑环境,如寻找字符串、列出行号等。 不过一般我们在使用时把 vi 简化成两个模式,就是将底行模式(last line mode)也算入命令行模式 command mode) 。 2、 vi 的基本操作 a) 进入 vi 在系统提示符号输入 vi 及文件名称后,就进入 vi 全屏幕编辑画面: $ vi myfile 不过有一点要特别注意,就是您进入 vi 之后,是处于命令行模式( command mode) ,您要切换到插入模式(Insert mode) 才能够输入文字。初次使用 vi 的人都会想先用上下左右键移动光标

21、,结果电脑一直哔哔叫,把自己气个半死,所以进入 vi 后,先不要乱动,转换到 插入模式(Insert mode) 再说吧! b) 切换至插入模式(Insert mode)编辑文件 在命令行模式(command mode) 下按一下字母i就可以进入插入模式(Insert mode) ,这时候你就可以开始输入文字了。 c) Insert 的切换 您目前处于插入模式(Insert mode) ,您就只能一直输入文字,如果您发现输错了字!想用光标键往回移动,将该字删除,就要先按一下ESC键转到命令行模式(command mode) 再删除文字。 d) 退出 vi 及保存文件 在命令行模式(comman

22、d 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) . 从插入模式切换为

23、命令行模式 按ESC键。 3) . 移动光标 vi 可以直接用键盘上的光标来上下左右移动,但正规的 vi 是用小写英文字母h 、 j 、k 、 l ,分别控制光标左、下、上、右移一格。 按ctrl+b:屏幕往“ 后”移动一页。 按ctrl+f:屏幕往“前 ”移动一页。 按ctrl+u:屏幕往“ 后”移动半页。 按ctrl+d:屏幕往“ 前”移动半页。 按数字0:移到文章的开头。 按G:移动到文章的最后。 按$:移动到光标所在行的 “行尾” 。 按:移动到光标所在行的“行首” 按w:光标跳到下个字的开头 按e :光标跳到下个字的字尾 按b:光标回到上个字的开头 按#l:光标移到该行的第# 个位置

24、,如:5l,56l。 4) . 删除文字 x:每按一次,删除光标所在位置的“后面”一个字符。 #x:例如, 6x表示删除光标所在位置的“后面”6 个字符。 X:大写的 X,每按一次,删除光标所在位置的“前面”一个字符。 #X:例如, 20X表示删除光标所在位置的 “前面”20 个字符。 dd:删除光标所在行。 #dd:从光标所在行开始删除#行 5) . 复制 yw :将光标所在之处到字尾的字符复制到缓冲区中。 #yw:复制# 个字到缓冲区 yy :复制光标所在行到缓冲区。 #yy:例如, 6yy表示拷贝从光标所在的该行“往下数”6 行文字。 p:将缓冲区内的字符贴到光标所在位置。注意:所有与“

25、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键

26、确定您已经处于command mode下后,再按:冒号即可进入last line mode 。 A) 列出行号 set nu:输入 set nu后,会在文件中的每一行前面列出行号。 B) 跳到文件中的某一行 #:#号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字 15,再回车,就会跳到文章的第 15 行。 C) 查找字符 /关键字:先按/键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按n会往后寻找到您要的关键字为止。 ?关键字 :先按 ? 键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按n会往前寻找到您要的关键字为止。 D)

27、 保存文件 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 在光标

28、所在位置的后一个字符开始增加 o 插入新的一行,从行首开始输入 ESC 从输入状态退至命令状态 x 删除光标后面的字符 #x 删除光标后的个字符 X (大写 X),删除光标前面的字符 #X 删除光标前面的# 个字符 dd 删除光标所在的行 #dd 删除从光标所在行数的# 行 yw 复制光标所在位置的一个字 #yw 复制光标所在位置的# 个字 yy 复制光标所在位置的一行 #yy 复制从光标所在行数的# 行 p 粘贴 u 取消操作 cw 更改光标所在位置的一个字 #cw 更改光标所在位置的# 个字 2、下表列出行命令模式下的一些指令 w filename 储存正在编辑的文件为 filename

29、wq filename 储存正在编辑的文件为 filename,并退出 vi q! 放弃所有修改,退出 vi set nu 显示行号 /或? 查找,在/后输入要查找的内容 n 与/或?一起使用,如果查找的内容不是想要找的关键字,按 n 或向后(与/联用)或向前(与?联用)继续查找,直到找到为止。 对于第一次用 vi,有几点注意要提醒一下: 1、用 vi 打开文件后,是处于命令行模式(command mode) ,您要切换到插入模式(Insert mode) 才能够输入文字。切换方法:在命令行模式(command mode) 下按一下字母i就可以进入插入模式(Insert mode) ,这时候你

30、就可以开始输入文字了。 2、编辑好后,需从插入模式切换为命令行模式才能对文件进行保存,切换方法:按ESC键。 3、保存并退出文件:在命令模式下输入:wq 即可!(别忘了 wq 前面的:)linux vi 命令简介linux vi 命令是“Visual interface”的简称,它在 Linux 上的地位就仿佛 Edit 程序在 DOS 上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。linux vi 命令不是一个排版程序,它不象 Word 或 WPS 那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本

31、编辑程序。linux vi 命令没有菜单,只有命令,且命令繁多。Vi 有三种基本工作模式:命令行模式、文本输入模式和末行模式。命令行模式任何时候,不管用户处于何种模式,只要按一下键,即可使 linux vi 命令行模式;我们在shell 环境(提示符为$)下输入启动 linux vi 命令,进入编辑器时,也是处于该模式下。在该模式下,用户可以输入各种合法的 linux vi 命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的 linux vi 命令,则 linux vi命令在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示

32、出来。若输入的字符不是 Vi 的合法命令,Vi 会响铃报警。文本输入模式在命令模式下输入插入命令 i、附加命令 a 、打开命令 o、修改命令 c、取代命令 r 或替换命令 s 都可以进入文本输入模式。在该模式下,用户输入的任何字符都被 Vi 当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键即可。末行模式末行模式也称 ex 转义模式。linux vi 命令和 Ex 编辑器的功能是相同的,二者主要区别是用户界面。在 Vi 中,命令通常是单个键,例如 i、a、o 等;而在 Ex 中,命令是以按回车键结束的正文行。 linux vi 命令有一个专门的“转义”命令,可

33、访问很多面向行的 Ex 命令。在命令模式下,用户按“:”键即可进入末行模式下,此时 linux vi 命令会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等) 。末行命令执行完后,linux vi 命令自动回到命令模式。例如::1,$s / A / a / g则从文件第一行至文件尾将大写 A 全部替换成小写 a。若在末行模式下输入命令过程中改变了主意,可按键,或用退格键将输入的命令全部删除之后,再按一下退格键,即可使 linux vi 命令回到命令模式下。如果要从命令模式转

34、换到编辑模式,可以键入命令 a 或者 i;如果需要从文本模式返回,则按 Esc 键即可。在命令模式下输入“:”即可切换到末行模式,然后输入命令。linux vi 命令的进入与退出linux vi 命令的进入用户登录到系统中之后,系统给出提示符“$” 。在提示符后键入 Vi 和想要编辑(或建立)的文件名,便可进入 Vi。例 1 键入命令:$ vi example.c屏幕显示如下:“ example.c” New File如果只键入 Vi,而不带文件名,也可以进入 Vi。之后在光标处键入文件内容,退出 Vi 时,只需在退出命令后输入文件名即可。进入 Vi 之后,首先进入的就是命令模式,也就是说等待

35、命令输入而不是文本输入。这时输入的字母都将作为命令来解释。光标停在屏幕第一行首位上(用表示) ,其余各行行首均有一个“”符号,表示该行为空行。最后一行也称状态行,显示出当前正在编辑的文件名以及其状态。如本例是New File ,表示 example.c 是一个新建的文件。如果 example.c 文件已在系统中存在,那么输入上述命令后,则在屏幕上显示出该文件的内容,并且光标停在第一行的首位,在状态行显示出该文件的文件名、行数和字符数。例 2 键入命令:$ vi example.c然后键入:#includemain ( ) int k ;for ( k=0 ; k3 ; k+) add( );a

36、dd( ) 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 命令中也可以不给出文件名,当编辑完文件需要保存数据时,再由

37、用户指定文件名。进入 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光标将

38、位于文件 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(“

39、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 时

40、,可以使用以下几种方法之一。在命令模式中,连按两次大写字母 Z,若当前编辑的文件曾被修改过,则 Vi 保存该文件后退出,返回到 shell;若当前编辑的文件没被修改过,则 Vi 直接退出, 返回到 shell。在末行模式下,输入命令:wlinux vi 命令保存当前编辑文件,但并不退出,而是继续等待用户输入命令。在使用 w 命令时,可以再给编辑文件起一个新的文件名。例 6:w newfile此时 Vi 将把当前文件的内容保存到指定的 newfile 中,而原有文件保持不变。若 newfile 是一个已存在的文件,则 Vi 在显示窗口的状态行给出提示信息:File exists (use ! t

41、o override)此时,若用户真的希望用文件的当前内容替换 newfile 中原有内容,可使用命令:w! newfile否则可选择另外的文件名来保存当前文件。在末行模式下,输入命令:q系统退出 linux vi 命令返回到 shell。若在用此命令退出 Vi 时,编辑文件没有被保存,则 Vi在显示窗口的最末行显示如下信息:No write since last change (use ! to overrides)提示用户该文件被修改后没有保存,然后 linux vi 命令并不退出,继续等待用户命令。若用户就是不想保存被修改后的文件而要强行退出 linux vi 命令时,可使用命令:q!l

42、inux vi 命令放弃所作修改而直接退到 shell 下。在末行模式下,输入命令:wqlinux vi 命令将先保存文件,然后退出 linux vi 命令返回到 shell。在末行模式下,输入命令:x该命令的功能同命令模式下的 ZZ 命令功能相同。linux vi 命令中的行号linux vi 命令中的许多命令都要用到行号及行数等数值。若编辑的文件较大时,自己去数是非常不方便的。为此 linux vi 命令提供了给文本加行号的功能。这些行号显示在屏幕的左边,而相应行的内容则显示在行号之后。使用的命令为:在末行方式下输入命令::set number需要说明的是,这里加的行号只是显示给用户看的,

43、它们并不是文件内容的一部分。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 filenamefilename :打开多个文件,依次进行编辑移动光标类命令/b

44、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:(注意是数字零)光标移至当前行首$:光标移至当

45、前行尾屏幕翻滚类命令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

46、个字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:允许在搜索模式中,使用前面不带“”的特殊字符n

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报