|
1. Vi编辑器
Vi命令是unix下常用而重要命令,可在全屏幕方式下编辑一个或多个文件。
Vi有三种模式:
1. 命令模式: 进入vi时所处的模式。在此模式下用户可输入各种子命令对进行*作,如删除行、粘贴行、移向下一个字、移向不同行等。
2. 文本输入模式: 在此模式下可以修改一行的内容并增添新行。在命令模式下键入a 、i 或c键可进入文本输入模式,按Escape键可返回命令模式。
3. 命令项模式: 在此模式下,可以通过子命令输入更多的参数。如:w子命令要求输入一文件名,"/"子命令要求输入一个查找项。用户使用Escape键返回命令模式。
vi命令一览表(部分)
| 功能 | 命令 | 备注 | | 移动光标 | h | 将光标左移一格。 | | l | 将光标右移一格。 | | k或Ctrl+p | 光标上移一行 | | j或Ctrl+n | 光标下移一行 | | w | 将光标移到下一个小字的前面。 | | W | 将光标移到下一个大字的前面。 | | b | 将光标移到前一个小字的前面。 | | B | 将光标移到前一个大字的前面。 | | e | 将光标移到下一个小字的后面。 | | E | 将光标移到前一个大字的后面。 | | fc | 把光标移到同一行的下一个c字符处。 | | Fc | 把光标移到同一行的前一个c字符处。 | | tc | 把光标移到同一行的下一个字符c的前一格。 | | Tc | 把光标移到同一行的前一个字符c的后一格。 | | number| | 把光标移到递number列上。 | | +或Enter | 把光标移至下一行第一个非空白字符。 | | - | 把光标移至上一行第一个非空白字符。 | | ) | 光标移至句尾 | | ( | 光标移至句首 | | } | 光标移至段落开头 | | { | 光标移至段落结尾 | | nG | 光标移至第n行首 | | n+ | 光标下移n行 | | n- | 光标上移n行 | | n$ | 光标移至第n行尾 | | H | 把光标移到屏幕最顶端一行。 | | M | 光标移至屏幕中间行 | | L | 光标移至屏幕最后行 | | 0 | (注意是数字零)光标移至当前行首 | | $ | 光标移至当前行尾 | | space | 字符 ">光标右移一个字符 | | Backspace | 字符 ">光标左移一个字符 | | 屏幕翻滚 | Ctrl + f | 向后滚一页。 | | Ctrl + d | 向后滚半页。 | | Ctrl + b | 向前滚一页。 | | Ctrl + u | 向前滚半页。 | | Ctrl + e | 屏幕向下滚一行。 | | Ctrl + y | 屏幕项上滚一行。 | | nz | 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 | | 插入修改 | i | 在光标前 | | I | 在当前行首 | | a | 光标后 | | A | 在当前行尾 | | o | 在当前行之下新开一行 | | O | 在当前行之上新开一行 | | r | 字符 ">替换当前字符 | | R | 字符及其后的字符,直至按ESC键 ">替换当前字符及其后的字符,直至按ESC键 | | s | 字符 ">从当前光标位置处开始,以输入的文本替代指定数目的字符 | | S | 删除指定数目的行,并以所输入文本代替之 | | ncw或nCW | 修改指定数目的字 | | nCC | 修改指定数目的行 | | ndw或ndW | 删除光标处开始及其后的n-1个字 | | do | 删至行首 | | d$ | 删至行尾 | | ndd | 删除当前行及其后n-1行 | | x或X | 字符,x删除光标后的,而X删除光标前的 ">删除一个字符,x删除光标后的,而X删除光标前的 | | Ctrl+u | 删除输入方式下所输入的文本 | | cc或S | 修改一整行。 | | C | 改变一行光标位置以后的部分。 | | cw | 改变光标所在单词。 | | dd | 删除当前行。 | | D | 删除光标所在行光标后面的内容。 | | dw | 删除光标所在的单词。 | | J | 把下一行内容加到本行行尾。 | | rc | 字符替换成c . ">把光符所在字符替换成c . | | R | 覆盖本行内容。 | | u | 恢复上一次的修改。 | | ~ | 字符的大小写。 ">改变光标所在出字符的大小写。 | | . | 重复上一个操作。 | | << | 把当前行移到左边。 | | >> | 把当前行移到右边。 | | 搜索替换 | /pattern | 文件尾搜索pattern ">从光标开始处向文件尾搜索pattern | | ?pattern | 文件首搜索pattern ">从光标开始处向文件首搜索pattern | | n | 在同一方向重复上一次搜索命令 | | N | 在反方向上重复上一次搜索命令 | | s/p1/p2/g | 将当前行中所有p1均用p2替代 | | n1,n2s/p1/p2/g | 将第n1至n2行中所有p1均用p2替代 | | g/p1/s//p2/g | 文件中所有p1均用p2替换 ">将文件中所有p1均用p2替换 | | /pattern/+number | 将光标停在包含pattern的行后面第number行上。 | | /pattern/-number | 将光标停在包含pattern的行前面第number行上。 | | % | 移到匹配的“()”或“{}”上。 | | 其他命令 | ctrl+g | 文件的有关信息。 ">取得正在编辑文件的有关信息。 | | :sh | 启动sh ,从sh中返回可用exit或ctrl+d . | | :! Command | 执行命令command . | | !! | 重新执行上次的:! Command子命令。 | | q | 退出vi | | q! | 文件并退出vi ">不保存文件并退出vi | | ZZ或:wq | 文件的修改并退出vi . ">保存对文件的修改并退出vi . | | e filename | 文件filename)。 ">使用filename激活vi (在vi中装入另一个文件filename)。 | | e! | 文件,若当前文件有改动,则丢弃以前的改动。 ">重新装入当前文件,若当前文件有改动,则丢弃以前的改动。 | | e+filename | 文件尾部开始编辑。 ">使用filename激活vi ,并从文件尾部开始编辑。 | | e+number filename | 使用filename激活vi ,并在第number行开始编辑。 | | e# | 文件。 ">开始编辑另外一个文件。 | | r filename | 文件,并将其内容加到当前文件后。 ">读取filename文件,并将其内容加到当前文件后。 | | r ! Command | 文件,并将其输出加到当前文件后。 ">执行command文件,并将其输出加到当前文件后。 | | n1,n2 w!command | 文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入 ">将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入 |
|