收藏 分享(赏)

vi使用手册及详解.pdf

上传人:精品资料 文档编号:10951977 上传时间:2020-01-27 格式:PDF 页数:18 大小:159KB
下载 相关 举报
vi使用手册及详解.pdf_第1页
第1页 / 共18页
vi使用手册及详解.pdf_第2页
第2页 / 共18页
vi使用手册及详解.pdf_第3页
第3页 / 共18页
vi使用手册及详解.pdf_第4页
第4页 / 共18页
vi使用手册及详解.pdf_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、vi 使用手册及详解 (zt) 移动光标 上 k 下 j 左 h 右 l w 向后移 ,光标移至下一行词首 b 向前移 ,光标移至每一行词首 e 向后 ,光标移至每一行词尾 0 移至光标所在行首 $ 移至行尾 ctrl+f 荧幕向前移动一页 ctrl+b 荧幕向后移动一页 f 字符 向后移至字符处 ,光标在字符处 gg 移至文件开始行 G 移至文件最后一行, 3G 移至第 3 行。 (g=goto) H 移至当前窗口内的第一行 M 移至当前窗口内的中间一行 L 移至当前窗口内的最后一行 :set nu 显示行号 :set nonu 不显示行号 删除 x 删除当前光标位置字符 nx 向后删除 n

2、 个字元 dd 删除光标所在的那一行 d$ 删除从当前字母开始至行尾的所有字符 D 插入 i 进入插入状态可在当前位置进行插入 ,退出插入状态 a 在当前字母后开始进入插入状态,退出用 p 在当前行后插入刚用 dd 命令删除的行。即可以用于行的移动 o 在当前行后插入一空行并进入编辑状态 O 在当前行前插入一空行并进入编辑状态 :r 文件名 在当前行后插入此文件内容。 搜索 / words 或 words 寻找名为 word 或 words 字符串 cw 即先删除当前字母至空格,不包含空格 ,然后进入插入模式 替换 r 可输入一个字母可替换当前光标的字母 R 可进入替换状态,输入要替的内容后用

3、退出。 cw 即先删除当前字母至空格,不包含空格 ,然后进入插入模式 : n1,n2s/word1/word2/g 在第 n1 行与 n2 行之间寻找到 word1 这个字串,并将该字串取代为word2 搜索 +替换 :s/thee/the 搜索 thee 并换成 the ,注意只搜索第一匹配的内容 :s/thee/the/g 搜索 thee 并换成 the ,注意只搜索并替换一行的内容 :s/thee/the/gc 搜索 thee 并换成 the ,注意只搜索并替换一行的内容 ,并每次替换都将询问是否 :%s/thee/the/g 搜索 thee 并换成 the ,注意搜索并替换整个文件内容

4、 :10,20s/thee/the/g 搜索 thee 并换成 the ,注意搜索并替换第 10 行与第 20 行之间的内容 :1,$s/thee/the/g 搜索 thee 并换成 the ,注意搜索并替换第 1 行与最后行之间的内容 :ranges/pat1/pat2/g 其中 : 这是 vi 的命令模式。 range 是命令执行范围的指定,可以使用百分号( %)表示所有行,使用点( .)表示当前行,使用美元符号( $)表示最后一行。你还可以使用行号,例如 10,20 表示第 10 到 20 行, .,$表示当前行到最后一行, .+2,$-5 表示当前行后两行直到全文的倒数第五行,等等。

5、s 表示其后是一个替换命令,类似 Perl 的替换函数。 pat1 这是要查找并替换的一个正则表达式。 pat2 这是希望把匹配串变成的模式的正则表达式。 g 模式修饰符,表示替换将针对行中每个匹配的串进行重复匹配,不是只匹配行中出现的第一个匹配串。 i 模式修饰符,表示模式匹配时忽略大小写。 反悔 u 恢复最后一个命令的结果 Ctrl-r 反悔的反悔 从 shell 中启动可视化编辑器 vi filename 指示 shell 启动 vi 编辑器,并将参数 filename 传给它。如果当前目前中存在该文件,则 vi 编辑器将它解释为要打开的文件;如果没有该文件,则 vi 编译器创建新文件

6、vi file1 file2 file3 shell 传递 3 个参数给 vi, vi 将它们解释为要打开的文件。可以使用 :w 命令保存文件,使用 :n 命令访问下一个文件 vi +# filename 打开文件,并将光标移到指定的行。例如,命令 vi +100 records 从第 100 行开始编辑文件 records vi +/the filename 打开文件,并将光标移动包含有目标字符串的行。例如,命令 vi +/Jason friends 从第 1 个含有字符串 Jason 的行开始编辑文件 friends view filename 打开文件进行编辑,但是拒绝保存对文件的修改,

7、除非使用 w!命令 光标移动命令 hjkl 将光标分别向左、下、上、右移动一个字符 0(零 ) 将光标移到当前行的行首 (脱字符 ) 同 0 一样将光标移到当前行的行首 $ 将光标移到当前行的行末 #G 将光标移到 G 前面的数字指定的行。例如, 42G 将光标移到文件的第 42 行 G 将光标移到文件的最后一行 w 将光标向前移到下一个单词的首字母 e 将光标向前移到下一个单词的最后一个字母 b 将光标向后移到上一个单词首字母 - 将光标定位到上一行的行首 + 将光标定位到下一行的行首 12| 将光标定位到当前行的第 12 列 L 将光标定位到屏幕的最下面一行 M 将光标定位到屏幕中间的一行

8、 H 将光标定位到屏幕的最上面一行 两个单引号将光标移到它的先前的位置 光标定位命令(上下文的) fb 将光标向前移到当前行上的下一个字母 b(或者其他的任意指定的字符) Fb 将光标向后移到当前行上的上一个字母 b(或指定的字符) t# 将光标移到当前行上字符的第 1 个实例的右侧。例如,命令 tM 将光标移到当前行上第 1个 M 的右侧 T# 在当前行上向左移动光标,将它移到字符的第 1 个实例的前一字符 /word 将光标向前移到单词 word 的下一个实例 ?word 将光标向后移到单词 word 的上一个实例 n 将光标移到前面命令 /word 或 ?word 中指定模式的下一个实例

9、 显示调整命令 Ctrl+D 显示文件中的下半屏文本 Ctrl+U 显示文件中的上半屏文本 Ctrl+F 显示文件中的下一屏文本 Ctrl+B 显示文件中的上一屏文本 设置显示选项 :set number 将行号作为屏幕显示的一部分,但是行号并不是文件的一部分。它的缩写形式为 :set nu :set nonumber 清除屏幕上的行号。也可以使用缩写形式 :set nonu :set showmode 在屏幕的右下角显示追加模式信息 :set list 在每行的行末显示美元符号,并用 Ctrl+I 表示制表符 :set showmatch 在输入)或时,将光标移到与之匹配的(或 :set w

10、indow=value 定义屏幕上显示的文本行的行数 :set autoindent 自动缩进。也可以使用缩写形式 :set ai :set tabstop=value 设置显示制表符的空格字符个数。也可以使用缩写形式 ts=value :set wrapmargin=value 设置显示器的右页边。当输入进入所设置的页边时,编辑器自动回车换行 :set ignorecase 指示编辑器搜索字符串,并忽略目标中字母的大小写 :set 显示设置的所有选项 :set all 显示所有可以设置的选项 文本删除命令 dd 删除当前光标所有的文本行 #dd 删除行文本 dw 从文本中删除一个单词 #dw

11、 从文本中删除个单词 x 删除光标所在的一个字符 #x 从文本中删除个字符 D 删除当前行上光标后面的部分 :#,#d 例如, :12,37d 将删除第 12 37 行之间的所有文本,包括第 12 和 37 行 撤销命令 u 撤销。恢复最近一次的文本修改操作,即使已经移动了光标。在 Linux 系统中,再次使用撤销命令将恢复更前一次的文本修改操作。在 BSD 的 vi 中,第 2 次撤销操作将撤销第一次撤销操作,恢复第 1 次撤销前修改的文本 :redo 在 Linux 系统中,取消撤销操作恢复文本修改。在标准的 UNIX 系统中,第 2 个 u 命令取消第 1 个 u 命令,结果就是一个 “

12、redo” U 如果在修改后还没有将光标移出当前行,则可以撤销对当前行进行的所有的文本修改 向文本中添加文本 a(小写 ) 从光标的右侧开始插入文本 A(大写 ) 从当前行的行末开始添加文本 i(小写 ) 从光标的左侧开始插入文本 I(大写 ) 从当前行的行首插入文本 o(小写 ) 在光标的下面打开(或插入)一个新行 O(大写 ) 在光标的上面打开一个新行 :#r filename 例如, :8r report.old 读取文件 report.old,并将它的内容放到当前文件的第 8 行之后 Esc 无论使用什么命令进入了追加 /插入模式,都可以通过按 Esc 键离开追加模式返回到 vi 的命

13、令模式 Ctrl+V 允许输入控制字符。按 Ctrl+V 键后再按回车键将把 Ctrl+M 插入到文件中 在文件中修改文本 cw 仅仅修改光标处的单词 (删除单词, 然后进入追加模式中, 以在被删除单词的位置添加文本) s(小写 ) 替换单个字符 S(大写 ) 替换整行文本 cc 替换整行文本 (同 S) r 用输入的下一个字符替代当前光标处的字符,并自动返回到命令模式 R 将编辑器放到覆盖模式,用输入的字符来逐个替换光标处的字符 C(大写 ) 修改行上从光标到行末之间的文本 ct# 修改行上从光标到前向第 1 个目标字符之间的文本。例如 ctY 将删除当前行上从光标到向前第 1 个字符 Y

14、之间的所有文本,并进入追加模式以在删除文本的位置添加文本 cf# 修改行上从光标到前向第 1 个目标字符之间的文本(包括目标字符)。例如 cfY 将删除当前行上从光标到向前第 1 个字符 Y 之间(包括 Y)的所有文本,并进入追加模式以在删除文本的位置添加文本 cT# 修改行上从光标到后向第 1 个目标字符之间的文本。例如 cTY 将删除当前行上从光标到向后第 1 个字符 Y 之间的所有文本,并进入追加模式以在删除文本的位置添加文本 cF# 修改行上从光标到后向第 1 个目标字符之间的文本(包括目标字符)。例如 cFY 将删除当前行上从光标到向后第 1 个字符 Y 之间(包括 Y)的所有文本,

15、并进入追加模式以在删除文本的位置添加文本 接出和粘贴行的单词 yy 将当前行复制或接出到内在缓冲区。 20yy 将当前行和它后面的 19 行(共 20 行)文本复制到内存。目标行仍然保留在文件中,可以使用 p 命令将这些内存中的文本粘贴到文件中 dd 删除当前行,并将它放到与 yy 命令使用的相同的内存缓冲区。目标行从文件中删除,但是可以使用 p 命令将它粘贴到文件中的其他地方 yw 将当前光标所在的单词接出或复制到内在缓冲区。 6yw 命令将把当前单词和它后面的 5 个(共 6 个)单词复制到内存 dw 删除当前的单词,并将它放到与 yw 命令使用的相同的内存缓冲区。可以使用 p 命令将单词

16、粘贴到文件的其他地方 yt# 接出从光标到向前一个字符(不包括该字符)之间的文本。例如, ytB 命令将从光标到字符B 的下一实例(不包括字符 B)之间的文本接出或复制到内存 yf# 接出从光标到向前一个字符(包括该字符)之间的文本。例如, yf:命令将从光标到字符 :的下一个实例(包括字符 :)之间的文本接出或复制到内存 yT# 后向接出(不包括目标字符)。例如, yTN 命令将从光标到字符 N 的后向第 1 个实例之间的文本(不包括字符 N)接出或复制到内存 yF# 后向接出(包括目标字符)。例如, yFJ 命令将把从光标到字符 N 的向后第 1 个实例之间的文本(包括字符 N)接出或复制

17、到内存 p 将内存中的文本行粘贴到文件中光标所在行的下面,或将内存中的单词粘贴到文件中光标的右侧 P(大写 ) 将接出或删除的文本行粘贴到文件中光标所在行的上面。 或将接出或删除的单词粘贴到文件中光标的左侧 文件移动命令 J 将下行文本同当前行合并成一行 :#,# move # 将指定的行移到目标位置。 :12,35 move 58 命令将第 12 35 行之间的所有文本移到第 58 行的后面。缩写为 mo :1,26 co 82 将第 1 26 行之间的所有文本复制到第 82 行的后面(可以选择行号) 使用可视化编辑器进行全局编辑 :s /target/replacement/ 查找当前行上

18、目标字符串的第 1 个实例并删除,然后用字符串replacement 替换。只修改当前行上的第 1 个目标实例 :g /target/s/replacement/ 查找所有行上目标字符串的第 1 个实例并删除,然后用字符串replacement 替换。修改所有行上目标的第 1 个实例 :#,# s/target/replacement/ 在指定的行上进行替换。例如, :7,37 s/march/walk/将查找第 737 行之间的所有文本行,并用字符串 walk 替换每行中的第 1 个目标字符串 march。所有指定行上的第 1 个目标字符串修改 :#,# s/target/replaceme

19、nt/g 在指定的行上进行全局替换。例如, :1,$ s/fun/joyful/g 将在第 1行到文件最后一行之间查找目标字符串 fun 的所有实例并删除,然后用字符串 joyful 替换。指定行上的目标字符串的所有实例都被修改 :g /target/s/replacement 查找所有行上目标字符串的第 1 个实例并删除,然后用字符串replacement 替换。所有行上的第 1 个目标都被修改 :#,# target/s/replacement/ 在指定的行上进行替换,例如, :7,37 march/s/walk 命令在第 737 行之间每个文本行上查找目标字符串的第 1 个实例并删除,然

20、后用字符串 walk 替换。所有指定行上的第 1 个目标字符串都被修改 :#,# target/s/replacement/g 在指定的行上进行全局替换。例如, :1,$ fun/s/joyful/g 将在第 1行到文件最后一行之间查找目标字符串 fun 的所有实例并删除,然后用字符串 joyful 替换。指定行上的所有目标字符串都被修改 编辑工具:映射,缩写和标记 m# 用字母标记当前行。例如, ma 命令表示用 a 标记当前行。即使移动了标记行,它仍然标记为 a,可以用 a 来定位该行 # 定位标记行。例如,命令 a 将光标移到标记 a 的行。命令 a,$d 将删除从标记行到文件末尾之间的

21、所有行 :map # command string 在命令模式中输入时,将其作为一个命令串。例如, :map #o#!/bin/ksh 产生一个新的命令模式指令,您输入时,它被解释为 :o 打开个新行,并添加文本 #!/bin/ksh 到文件中。为了在命令中包含回车和其他控制字符,可以在它们的前面用 Ctrl+V命令 :ab abbreviation char-string 设置追加模式缩写。例如,在命令模式中输入 :ab mv Milky Way Galaxy, 则建立缩写。 如果在追加模式中输入字符串 mw, 然后按 Esc 键, mw 将被 Milky Way Galaxy 替代 在 v

22、i 编辑器中向 shell 发出命令 :!ls 启动一个 shell,并让 shell 运行 ls 程序。在运行完指定的程序后,必须按回车键以返回到编辑器中 :!ksh 启动一个 shell,它允许运行多个命令。退出 shell 可以回到编译器中 :Or!speel% 对当前文件 (%)进行拼写检查,并将 spell 的输出诗篇到当前文件中,从第 1 行 (0行后面 )开始放置这些输出 :31r!command% 运行 UNIX 命令(如 cal 或 date)并将它的输出读入到当前文件,从第 31行开始放置这些输出 Ctrl+Z 用于挂起当前编辑会话进程的 csh 和 ksh 命令,它允许您

23、向父 shell 发出命令 fg 重新激活挂起的编辑进程的 csh 和 ksh 命令 读、写和退出编辑器 :wq 保存编辑会话期间对文件所做的修改,退出编辑器返回到 shell :q 如果没有对文件进行修改或添加文件,可以用 q 退出对一个文件的编辑 :q! 退出对文件的编辑返回到 shell 模式,但是不保存在编辑会话期间对文件所做的修改 :w filename v 将文件的缓冲区副本(修改版本)保存到一个新文件 color=#DC143Cb:#,# w newtest 例如, :1,6 w newtext命令创建一个名为 newtext的文件,并将当前文件的第 1 6 行文本复制到文件 n

24、ewtext 中 :1,6 w oldfile 将当前文件的第 1 6 行文本的一个副本追加到已有文件 oldfile 的末尾 :1,6 w! oldfile 用当前文件的第 1 6 行文本覆盖文件 oldfile 进入 vi 的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第 n 行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与 pattern 匹配的串处 vi -r filename :在上次正用 vi 编辑时发生系统

25、崩溃,恢复 filename vi filenamefilename :打开多个文件,依次编辑 移动光标类命令 h :光标左移一个字符 l :光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字符 k 或 Ctrl+p:光标上移一行 j 或 Ctrl+n :光标下移一行 Enter :光标下移一行 w 或 W :光标右移一个字至字首 b 或 B :光标左移一个字至字首 e 或 E :光标右移一个字 j 至字尾 ) :光标移至句尾 ( :光标移至句首 :光标移至段落开头 :光标移至段落结尾 nG:光标移至第 n 行首 n+:光标下移 n 行 n-:光标上移 n 行

26、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:从当前光标位置处开始,以输入

27、的文本替代指定数目的字符 S:删除指定数目的行,并以所输入文本代替之 ncw 或 nCW:修改指定数目的字 nCC:修改指定数目的行 删除命令 ndw 或 ndW:删除光标处开始及其后的 n-1 个字 do:删至行首 d$:删至行尾 ndd:删除当前行及其后 n-1 行 x 或 X:删除一个字符, x 删除光标后的,而 X 删除光标前的 Ctrl+u:删除输入方式下所输入的文本 搜索及替换命令 : /pattern:从光标开始处向文件尾搜索 pattern ?pattern:从光标开始处向文件首搜索 pattern n:在同一方向重复上一次搜索命令 N:在反方向上重复上一次搜索命令 : s/p

28、1/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:允许在搜索模式中,使用前面不带 “”

29、的特殊字符 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:执行 s

30、hell 命令 command : n1,n2 w!command:将文件中 n1 行至 n2 行的内容作为 command 的输入并执行之,若不指 定 n1, n2,则表示将整个文件内容作为 command 的输入 : r!command:将命令 command 的输出结果放到当前行 。 = 语法 : vi -wn -R 文件 . 说明 : vi 是一个基于行编辑器 ex 上的全屏幕编辑器, 可以在 vi 中使用 ex, ed 的全部命令,vi 选项中 -wn 指将编辑窗口大小置为 n 行, -R 为将编辑的文件置为只读模式, vi 工作模式分为命令模式和输入模式,一般情况下在命令模式下,可

31、敲入 vi 命令,进入输入模式下时可以编辑要编辑的文本,命令 a A i I o O c C s S R 可进入输入模式,在输入模式下按 ESC 键可推出输入模式,回到命令模式,在命令模式中敲入: 命令,则可进入 ex 方式,在屏幕底部出现提示符 : ,此时可使用任意 ex 命令,屏幕底行也用来作 / ? ! 命令的提示行,大多数命令可以在其前面加数字, 表示命令执行的重复次数, 下面简单介绍一下 vi 的命令集, 表示 (CTRL)键 B 退回前一页,前面加数字表示重复次数,每次换页时 保留上一页的两行 D 在命令模式下,表示下滚屏幕的一半,在输入模式下,表示回退至 左边的自动缩进处 E 显

32、示屏幕底线之下的一行 F 前进一页,前面加数字表示重复次数,每次换页时 保留上一页的两行 G 显示当前文件名,当前行号和文件总行数,并用百分号当前行在 整个文件中的位置 H(退格 ) 在命令模式下,光标左移一格;在输入模式下,删去前面的字符 I(TAB) 在输入模式下,产生一串空格 J(LF) 光标下移一行 L 刷新屏幕,即将屏幕重新显示 M(回车 ) 在命令模式下,光标移动至下行开头 在输入模式下,开辟一新行 N 光标下移一行 P 光标上移一行 Q 在输入模式下,将其后的非打印字符作为正文插入 R 刷新屏幕 U 屏幕上滚一半,前面加数字时表示上滚的行数,此数字对 以后的 D U 命令有效 V

33、 在输入模式下,将其后的非打印字符作为正文插入 W 在输入模式下,使光标回退一个字 Y 显示屏幕底线之上的一行 Z 暂停编辑,退回上层 Shell (ESC) 退出输入模式,回到命令模式 ! 暂时退出编辑,执行 Shell 命令 (双引号 ) 用于标志有名缓冲区,编号缓冲区 1-9 用于保存被删去的正文,字 母名缓冲区 a-z 供用户存放自定义的正文 $ 将光标移动到当前行尾,前加数字则表示前移行数,如 2$表示移动 到下一行行尾 % 将光标移动到配对的小括号 ()或大括号 上去 ( 退回句子开头 ) 前移到句子开头 - 退到上一行第一个非空格字符 . 重复上一次改变缓冲区内容的命令 / 模式

34、 向前搜索模式,将光标移动到模式出现处,模式是一个正规 表达式, (参看 grep) : 在屏幕底部提示:,其后可使用 ex 命令 ? 功能同 / ,但方向是向前查找 光标回退至前一节分界处 转意符 光标前移至节分界处 (不是 CTRL) 光标移至当前行第一个非空字符上 连续两个 表示将光标移至其移动前的位置, 后跟字母表示光标字 母标记的行首 (参看 m 命令 ) A 在行尾插入正文,进入输入模式 B 光标回退一个字 C 替换光标后的内容 D 删除光标后的内容 E 光标前移到字尾 F 字符 在当前行向左查找指定字符 G 光标移动到其前面数字指定的行,若未指定则移动到最后一行 H 光标移动到屏

35、幕顶行,若前面有数字,则移动到屏幕上该数字 指定的行 I 在行开头插入正文 J 连接两行,若前面有数字则连接数字指定的行 L 光标移动到屏幕底行,若前面有数字,则移动到屏幕底线往上数该 数字指定的行 M 光标移动到屏幕中线 N 使用模式查找 /或 ?时,重复找下一个匹配的模式,但方向与上次相 反,其功能同 n ,但方向相反 O 在当前行上开辟一新行 P 将上次被删除的正文插入光标前面,可在其前面加缓冲区编号,编 号 1-9 用于保存被删去的正文,字母名缓冲区 a-z 供用户存放自定 义的正文 Q 从 vi 推出进入 ex 命令状态 R 替换字符串 S 替换整行 T 字符 向左查找字符 U 将当

36、前行恢复至第一次修改前的状态 W 光标移至下一个字首 X 删除光标前的字符 Y 将当前行存入无名缓冲区,前面加数字表示存入的行数,也可用有 名缓冲区来保存,以后可用命令 p 或 P 将其取出 ZZ 存盘退出 vi a 光标后插入正文 b 光标回退至上一个字首 cw 替换当前字 c) 替换当前句子 dw 删除一个字 dd 删除一行 e 光标移到下一个字末 f 字符 在当前行向前查找字符 h 光标左移一格 i 在光标前插入正文 j 光标下移一行 k 光标上移一行 l 光标右移一格 m 字母 用字母标记当前行,以后可用 字母使光标移动到当前行, (参看 命令 ) n 重复上次 / 或 ? 命令 o

37、在当前行下开辟一新行 p 将用户缓冲区内容放到光标位置 (参看 P 命令 ) r 替换当前字符 s 用一串字符替换当前字符 t 字符 光标移动至字符前 u 取消上次操作 w 光标移至下一字首 x 删除当前字符 yw 将当前字存入无名缓冲区,前面可加 x,表示存入名字为 x 的有名 缓冲区 (x 为 a-z),也可加数字表示存入的字数,以后可用 P 或 p 命 令取出 yy 将当前行存入无名缓冲区,用法参看 yw 光标移动至前一段开头 | 光标移至行首,若前面加数字,则移到数字指定行的行首 光标移至下一段开头 在:提示符下,常用命令如下 : : w 当前文件存盘 : w! 强制存盘 : w 文件

38、 将内容写入指定文件 : w! 文件 强制写入指定文件 : x, y w 文件 将 x至 y 行写入指定文件中 : r 文件 将文件读到光标位置 : r ! 命令 将系统命令的输出读到光标位置 : q 退出编辑 : q! 强制退出 : x 与命令 ZZ 相同 : e 文件名 编辑另一文件 : e ! 重新编辑文件,放弃任何改变 : sh 执行 sh,结束后回到编辑 : ! 命令 执行命令后回到编辑 : n 编辑下一文件 : n 文件表 重新定义待编辑文件表 : set 设置 vi 的选项,例如 set nu 表示每行前显示行号,在选项前 加 no 则表示清除该选项,例如 set nonu 表示

39、每行前不显示行 号,下面是一些常用的选项 : ai 自动缩进 aw 编辑下一文件前自动存盘 ic 查找字符串时不区分大小写 nu 每行前显示行号 sm 输入 )及 时显示与之配对的 ( 或 slow 插入时延迟屏幕刷新 ws 使查找能绕过文件尾从头进行 wa 写文件之前不作对文件的检查 = vi(Visual)是以视觉为导向的全屏幕编辑器、共分为三种方式( mode): command 方式: 任何输入都会作为编辑命令,而不会出现在屏幕上,若输入错误则有 “岬 ”的声音;任何输入 都引起立即反映 insert 方式: 任何输入的数据都置于编辑寄存器。在 command 方式下输入( I,a,A

40、 等) ,可进入 insert 方式, insert 方式下按 ESC,可跳回 command 方式。 escape 方式: 以 “: ”或者 “/”为前导的指令,出现在屏幕的最下一行,任何输入都被当成特别指令。 进入 vi(在系统提示符下面输入以下指令) : vi 进入 vi 而不读入任何文件 vi filename 进入 vi 并读入指定名称的文件(新、旧文件均可)。 vi +n filename 进入 vi 并且由文件的第几行开始。 vi +filename 进入 vi 并且由文件的最后一行开始。 vi + /word filename 进入 vi 并且由文件的 word 这个字开始。

41、vi filename(s) 进入 vi 并且将各指定文件列入名单内,第一个文件先读入。 vedit 进入 vi 并且在输入方式时会在状态行显示 “INSERT MODE“。 编辑数个文件(利用 vi filename(s)进入 vi 后) :args 显示编辑名单中的各个文件 :n 读入编辑名单中的下一个文件 :rew 读入编辑名单中的第一个文件 :e# 读入编辑名单内的前一个文件 :e file 读入另一个文件进 vi(此文件可不在编辑名单内) ,若原文件经修改还没有存档,则 应先以 : w 存档。 :e! file 强迫读入另一个文件进入 vi,原文件不作存档动作。 存储及退出 vi :

42、w filename 存入指定文件, 但未退出 vi(若未指定文件名则为当前工作的文件名) 。 :wq 或者 :x 或者 zz 存文件,并且退出 vi. :q 不作任何修改并退出 vi。 :q! 放弃任何修改并退出 vi。 :!command 暂时退出 vi 并执行 shell 指令,执行完毕后再回到 vi。 :sh 暂时退出 vi 到系统下,结束时按 Ctrl + d 则回到 vi。 加数据指令 i 在关标位置开始插入字符,结束时候按 ESC 键。 I 在光标所在行的最前面开始加字,结束时按 ESC 键。 a 在光标位置后开始加字,结束时按 ESC 键。 A 在光标所在行的最后面开始加字,结

43、束时按 ESC 键。 o 在光标下加一空白行并开始加字,结束时按 ESC 键。 O 在光标上加一空白行并开始加字,结束时按 ESC 键。 !command 执行 shell 指令,并把结果加在光标所在行的下一行。 删除指令 nx 删除由光标位置起始的 n 个字符(含光标位置,按一个 x 表示删除光标所在的字符) nX 删除由光标位置起始的 n 个字符(不含光标位置)。 ndw 删除光标位置其实的 n 个字符组( word)。 d0 将行的开始到光标位置的字符全部删除。 d$ 或 D 将光标位置起始到行尾的字符全部删除。 ndd 将光标位置起始的 n 行(整行)删除( dd 表示删除光标所在行)

44、。 :start,endd 删除文件的第 start 到 end 行。 关标移动 0 移到一行的开始 $ 移到一行的最后 移到文件开始位置 移到文件结束位置 nh 往左移 n 位 nl 或者 spacebar 往右移 n 位 nk 向上移 n 行 n+ 向上移 n 行,光标在该行的起始 ni 向下移 n 行 n- 向下移 n 行,光标在该行的起始 H 移到屏幕的左上角 M 移到屏幕的中间行开头 L 移到屏幕的最后一行 G 移到文件的最后一行 nG 或者 :n 移到文件的第 n 行 nw 右移 n 个字组,标点符号属于字组 nW 右移 n 个字组,标点符号不属于字组 nb 左移 n 个字组,标点

45、符号属于字组 nB 左移 n 个字组,标点符号不属于字组 Ctrl + u 屏幕上卷半个菜单 Ctrl + d 屏幕下卷半个菜单 Ctrl + b 屏幕上卷一个菜单 Ctrl + F 屏幕下卷一个菜单 修改指令 r 修改光标文件的字符 R 从光标位置开始修改,结束时按 ESC 键 new 更改 n 组字符,结束时按 ESC 键 ncc 从光标所在位置开始更改 n 行,结束时按 ESC 键 重排各行长度 i 并按 Enter 将该行由光标所在处断开,并进入 insert 方式 J 把下一行的数据连接到本行之后 寻找指令 /text 从光标位置往下找字串 text ?text 从光标位置往上找字串

46、 text n 继续找下一个字串(在输入上面的寻找指令之后使用) 寻找并且取代指令 :getxt1/s/ /text2/options 将各行的 text1 替换为 text2 option=g 表示文件中所有的 text1 均被取代,若未输入任何option,则只有 各行中的第一个出现的 text1 被取代 option=go 在屏幕显示各取代的行 option=gc 在每个字串取代之前要求确认 Start,endgtext1/s/ / text2/options 同上,只寻找并取代第 startend 行。 或 :Start,ends/text1/text2/options 复制及移动文件 :first,last co dest 将 first 到 last 行的数据复制到目标行 (dest)下面 :Start,end m dest 将 start 到 end 行的数据移动到目标行( dest)下。 :r filename 将指定文件的内容读入光标所在行下。 nY 将光标所在位置开始的 n 行数据暂存 p 复制暂存数据在光标的下一行 P 复制暂存数据在光标的上一行 其他命令 . 重复前一指令 u 取消前一指令 Ctrl + l 刷新屏幕显示 :set number 显示文件的行号,但不会存文件 :set nonumber

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

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

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


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

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

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