http://91mail.51.net提供??需要完整的pdf文档请到http://91mail.51.net下载
一、UNIX系统编辑器的概述 * ed :UNIX系统中原始的行编辑器。 * ex :行编辑器,是 ed 编辑器的扩充。 * vi :全屏幕编辑器,为UNIX系统的主 要编辑器,它也是 ed 的超集。 * emacs:全屏幕编辑器,不是UNIX系统 版本4的组成部分,是独立的编 辑程序。 3.1、 vi的启动与退出 1、vi 的启动 输入vi命令后,便进入全屏幕编辑环境,此时 的状态为命令方式。 ① vi 光标定在该缓冲区第一行第一列位置 ② vi example 光标定在缓冲区第一行第一列位置 ③ vi + example 光标定在文件最后一行第一列位置 ④ vi +N example 光标定位在文件第N行第一列的 位置(N:为数字) ⑤ vi +/string example 光标定位在文件中 第一次出现字符串string的行首位置 1.1 vi 的应用方式 * vi的名字取自于visual。 * 有两种操作方式:命令方式、插入方式和ex转义方式 * 命令方式下输入的大、小写是敏感的。
二、 vi的启动与退出 (续) 2、vi 的退出 建议 首先键入“ESC”键,以确保当前vi的 状态为命令方式,输入下列命令,退出vi。 ① :w 将编辑缓冲区的内容写入文件 :q 退出vi ② :wq 将上面两步操作可以合成一步来完成。 ③ :x 功能同上。 ④ :q 退出vi,此时的正文没有被更改过。 ⑤ :q! 强行退出vi,使更新内容不写回文件。
三、光标在窗口中移动 注释 字 : 是由空格或标点符号分开的字母序列。 句子 :是以句号(.)、问号(?)或感叹号 (!)结束的字符序列,句子之间由两个 空格或一个回车分开。 段落 :一个段落前后各有一个或多个空白行。 三、光标在窗口中移动(续) 1、 字符及行间移动 命 令 结果 —————————— —————————— ↑ 或 k 向上移一行 ↓ 或 j 向下移一行 ← 或 h 或 退格键 左移一个字符 → 或 l 或 空格 右移一个字符 o 移到当前行的开始 $ 移到当前行的结尾 + 或 回车符 移到下一行的开始 - 移到上一行的开始 三、光标在窗口中移动 (续) 2、 其它单位的移动 命 令 结果 ——————— —---------————————— w 移到下一个字或标点符号 W 移到下一个字 e 移到这个字或标点符号的结束 E 移到字的下一结尾 b 回到字或标点符号的开始 B 移回到字的开始 ) 移到下一个句子的开始 ( 移到这个句子的开始 } 移到下一段落的开始 { 移到这一段落的上一开始 四、在缓冲区中移动窗口 命令 结果 ——-——— --—------————————— CTRL-F 向前(上)移动一满屏幕 CTRL-D 向前(上)移动半屏幕 CTRL-B 向后(下)移动一满屏幕 CTRL-U 向后(下)移动半屏幕 H 光标移动到屏幕顶部 M 光标移动到屏幕中间 L 光标移动到屏幕底部 注意 可在这些命令前加入数字n作为前缀,使相应命 令执行n次。但nG使光标定位在第n行。 五、光标在正文中的移动 命令 结果 ——-——— --—------————————— G 光标移动到文件的尾部 nG 光标移动到文件的第n行 : 0 光标移动到文件的第1行 : 1 光标移动到文件的第1行 : n 光标移动到文件的第n行 : $ 光标移动到文件的尾部 /string 光标向前移动到string首 ?string 光标向后移动到string首 六、增加正本 命令 结果 ——-——— ----------—------————————— a 将输入文本插入在光标之后 A 将输入文本插入在当前行的行尾 i 将输入文本插入在光标之前 I 将输入文本插入在当前行的开始 o 将在当前行的下一行处打开一新行 O 将在当前行的上一行处打开一新行 注意 ESC:使编辑状态从输入方式切换到命令方式 七、修改正本 命令 结果 ——-— ---------------------—------————————— r 替换当前字符,不需按ESC。 R 从当前字符开始进行替换,至ESC键为止。 nC 对从当前字符开始的n行字符进行替换, 直至键入ESC键为止。 nc$ 同 nC。 ncw 对当前字符开始的n个字进行替换操作, 直至键入ESC键为止。 注意 n 为数字,为 1 时可省略。 七、修改正本 (续) 命令 结果 ——-— ------------------—------————————— ncc 对从当前字符开始的n行字符进行替换, 直至键入ESC键为止。 ns 替换从当前字符开始的n个字符,直至键入 ESC键为止。 nS 对从当前行开始的n行字符,进行替换, 直至键入ESC键为止。 J 将当前行和下一行连接起来。 注意 n 为数字,为 1 时可省略。 八、删除正本 1. x 与 X 命令的使用 命令 结果 ——-— --------------—------————————— x 删除当前字符。 nx 删除从当前字符开始的n个字符。 X 删除当前字符的前一个字符。 nX 删除当前字符的前n个字符。 注意 n 为数字,为 1 时可省略。 八、删除正本 (续) 2. d与D命令的使用 用来将指定范围内文本删除,并存入缓冲区。 命令 结果 ——-— --------------—------————————— ndw 删除以当前字开始的n个字。 nd$ 删除以当前字符开始的n行字符。 ndd 删除从当前行开始的n行。 D 与d$同义。 d) 删除到下一句的开始。 d} 删除到下一段的开始。 d 回车 删除两行。 九、移动与复制正本 1. m命令的使用 将指定范围的文本移动到指定位置。格式如下: <起始行号>,<结束行号> m <目标行号> 例:: 3 , 14 m 56 : 7 , 52 m 0
2. t命令的使用 将指定范围的文本复制到指定位置。格式如下: <起始行号>,<结束行号> t <目标行号> 例: 1 , 14 t 60 7 , 52 t $ 九、移动与复制正本 (续) 3. y与Y命令的使用 将指定范围的文本复制到缓冲区,但不删除其内容。 命令 结果 ——-— --------------—------————————— nyw 复制从当前字符开始的n个字; ny$ 复制从当前字符开始的n行字符; Y 与y$同义; y) 复制到下一句的开始; y} 复制到下一段的开始; nyy 复制从当前行开始的n行; y 回车 复制两行; 十、重复和取消操作 命令 结果 ——-— ----------------------—------————————— . 重复上一次所执行的命令。 u 取消最后一次所做的修改或删除。 U 取消此次到当前行来做的所有修改。 p 恢复当前缓冲区中内容。如缓冲区中内容是整 行信息,则放到当前行下面的一个新行;否则 将缓冲区的内容放到光标位置右边。 P 同p操作。恢复整行信息时,放到当前行上面的 一个新行;否则,放到光标位置左边。 :e! 重新编辑。废弃对这次文件所做的全部修改, 重新从盘中读入该文件,并开始编辑。 十一、检索和替换 命令 结果 ——-— ----------------------—------————————— /string 从当前位置向后检索字符串string,并将光标 定位在该串起始位置(向后循环检 索 )。 ?string 从当前位置向前检索字符串string,并将光标 定位在该串起始位置( 向前循环检索)。 // 重复上一条检索命令,但方向是向后检索。 ?? 重复上一条检索命令,但方向是向前检索。 n 重复上一条检索命令,而不管其检索方向。 (即检索方向不变)。 N 重复上一条检索命令, 但检索方向改向。 :g/string 检索字符串string,光标定位在第一次检索到 的string所在行的行首。 十一、检索和替换 (续) 1. 字符串替换命令格式1 :[addr]s/s1/s2/ [option] [addr] 表示检索范围,省略时表示当前行。 如: “1,20” :表示从第1行到20行; “%” :表示整个文件,同“1,$”; “. ,$” :从当前行到文件尾; s 为替换命令;s1 要被替换的串;s2 为替换的串; option : ? g 表示全局替换; ‚ c 进行确认 ; ? p 替代结果逐行显示(Ctrl + L恢复屏幕); „ 省略时仅对每行第一个匹配串进行替换; 2. 字符串替换命令格式2 :g/s1/s//s2/ [option] 十二、其他命令 命令 结果 ------—--—-— --------------—------———————— :set number 显示行号。 :set nonumber 不显示行号。 :set all 显示vi各选项的设置情况。 :f 显示当前文件及工作缓冲区状况。 :r filename 将名为filename的文件内容插入到 缓冲区当前行的下面。 :r ! cmd 执行命令cmd,并将结果插入到缓冲 区当前行的下面。

|