1026804235Lzp

vi编辑器的使用:

vi编辑器有三种基本工作模式,分别是命令行模式、文本输入模式、末行模式。

1.命令行模式

该模式是进入vi编辑器后的默认模式,任何时候,不管用户处于何种模式,按下esc键即可进入命令行模式。

在命令行模式下,可以输入vi命令来管理自己的文档。此时在键盘上输入任何字符都被当作编辑命令,而不是输入字符。

输入的字符并不会在屏幕上显示,若是合法的vi命令,则会完成相应的动作,否则会响铃报警。

2.文本输入模式

命令行模式下输入以下几个命令则会进入文本输入模式。

  • i: 插入命令,会将文本插入到光标所在位置之前
  • I: 插入命令,会将文本插入到光标所在行的行首
  • a: 追加文本命令,会将文本追加到光标当前位置之后
  • A: 追加文本命令,会将文本追加到光标所在行的末尾
  • o: 空行插入命令,将在光标所在行的下面插入一个空行,并将光标置于该行的行首
  • O: 空行插入命令,将在光标所在行的上面插入一个空行,并将光标置于该行的行首
  • c: 修改命令
  • r: 取代命令
  • s: 替换命令

在该模式下,用户输入的任何字符都被当做文件内容保存起来,并显示在屏幕上。

3.末行模式

命令行模式下,用户按下:键即可进入末行模式,此时vi会在显示窗口的最后一行显示一个:作为末行模式的说明符,等待用户输入命令。多数文件管理命令都是在此模式下执行的。

末行命令执行完后,vi会自动回到命令行模式

4.vi文本的删除命令:

vi编辑器可以在编辑模式和命令行模式下删除文本。命令行模式下,vi常用删除命令

  • x 删除光标处的字符。若在x之前加上一个数字n,则删除从光标所在位置开始向右的n个字符。
  • X 删除光标前面的字符。若在X之前加上一个数字n,则删除从光标前面那个字符开始向左的n个字符。
  • dd 删除光标所在的整行。前面加上数字n,则删除当前行以及其后的n-1行。
  • D 或 d$ 删除从光标所在处开始到行尾 的内容 。
  • d( 删除到上一句开始的所有字符
  • d) 删除到下一句开始的所有字符
  • d{ 删除到上一段开始的所有字符
  • d} 删除到下一段开始的所有字符
  • d0 删除从光标前一个字符开始到行首的内容
  • dw 删除一个单词。若光标处在某个单词的中间,则从光标所在位置开始删至词尾。前面加数字n,表示删除n个指定的单词。
  • d 删除包括当前行在内的两行字符,其中表示回车

5.vi文本复制命令

vi编辑器可以在编辑模式和命令模式下复制文本。

  • yy 命令:复制光标所在的整行。在 yy 前可加一个数字 n,表示复制当前行及其后 n-1 行的内容。
  • Y 或 y$ 命令:两命令功能一样,都是复制从光标所在处开始到行尾的内容。
  • yw 命令:复制一个单词。若光标处在某个词的中间,则从光标所在位置开始复制至词尾。同 yy 命令一样,可在 yw 之前加一个数字 n,表示复制 n 个指定的单词。
  • y(:复制到上一句幵始的所有字符。
  • y) 命令:复制到下一句幵始的所有字符。
  • y{: 复制到上一段开始的所有字符。
  • y} 命令:复制到下一段开始的所有字符。
  • y 命令( 表示回车):复制包括当前行在内的两行内容。

与文本复制有关的命令分为两类。

  1. 文本粘贴命令
  • p 命令:粘贴命令,粘贴当前缓冲区中的内容。
  1. 文本选择命令
  • v 命令:在命令模式下进行文本选择。在需要选择的文本的起始处按下 v 键进入块选择模式,然后移动光标到块尾处。这之间的部分被高亮显示,表示被选中。
  • V 命令:在命令模式下按行进行文本选择。在需要选择的文本的第一行按下 V 键,然后移动光标到块的最后一行。这之间的所有行被高亮显示,表示被选中。

6.vi撤销命令

  • u 命令:该命令撤销上一次所做的操作。多次使用 u 命令会一步一步依次撤销之前做过的操作(在一次切换到文本输入模式中输入的所有文本算一次操作)。
  • U 命令:该命令会一次性撤销自上次移动到当前行以来做过的所有操作,再使用一次 U 命令则撤销之前的 U 命令所做的操作,恢复被撤销的内容。

7.vi重复命令

命令行模式下,按下.键可以重复执行前面刚完成的命令。

8.vi退出命令

在末行模式下输入命令

  1. :q 如果退出时当前编辑文件尚未保存,则vi不会退出,而是继续等待用户的命令,并且会在末行说明如下信息。

    No write since last change(use! to overrides)

  2. :q! 该命令不问文件是否改变都会强行退出vi编辑器。

  3. :w 新文件名 vi保存当前编辑文件。等待用户继续输入命令。当+新文件名时,相当于另存为一个新的文件,源文件保持为编辑前的样子。可以放置因误操作覆盖已经存在的文件。

  4. w! 新文件名:w命令相同,不同的是若指定的新文件存在,vi编辑器也会用当前编辑文件对其进行替换,且不再询问用户。

  5. :wq vi将先保存文件,然后退出vi返回到shell。如果当前文件尚未取名,则需要先指定一个文件名

  6. :x 若当前编辑文件曾被修改过,则vi会保存该文件,否则直接退出。

9.字符替换命令

  • r命令 该命令将当前光标所指的字符替换为提供的字符。可以在该命令之前加上数字 n,表示将从当前字符开始的 n 个字符替换为提供的字符。
  • R命令 该命令会让 vi 进入 replace 模式。在此模式下,每个输入的字符都会替换当前光标下的字符,直到输入 结束该模式。

10.光标移动命令

  • h 光标左移一个字符
  • H 将光标移动到当前屏幕的第一行。前面+数字n,则将光标一直第n行的行首。
  • j 光标下移一行
  • k 光标上移一行
  • i 光标右移一个字符
  • M 将光标移至中间行的行首。
  • L 将光标移至屏幕显示文件的最底行的行首。
  • G 全文范围内移动光标,光标的移动不再受到屏幕的限制。前面加上数字n,表示将光标移动到文件的第五行行首。
  • w 将光标右移至下一个字的字首,这里的字表示英文单词、标点符号和非字母字符
  • W 将光标右移至下一个字的字首,这里的字表示两个空格之间的任何内容
  • e 把光标移到本字字尾,光标起始位置处于字尾,则把光标移动到下一个字的字尾。这里的字是指英文单词、标点符号和非字母字符
  • E 把光标移到本字字尾,光标起始位置处于字尾,则把光标移动到下一个字的字尾。这里的字是指两个空格之间的任何内容
  • b 把光标移至本字字首,光标起始位置处于字首,则把光标移动到上一个字的字首。这里的字是指英文单词、标点符号和非字母字符
  • B 把光标移至本字字首,光标起始位置处于字首,则把光标移动到上一个字的字首。这里的字是指两个空格之间的任何内容
  • { 该命令将光标向前移至上一个段落的开头。
  • **} ** 该命令将光标向后移至下一个段落的开头。

11.文本移动命令

  • >n 将指定的正文向右移动,通常是右移8个空格。移动正文的范围由光标所在行和随后输入的光标移动命令所限定。n 表示光标所在位置后面的文本行数。可 以不写 n,此时默认为 1;换句话说,只使用>命令将会移动光标所在的文本行,以及下一个文本行。如果只想移动光标所在的文本行,可以写>0
  • <n 将指定的正文向右移动
  • >> 该命令将光标所在行右移 8 个空格。前面加数字n则移动当前行加n-1行
  • <<>>相反
  • m命令:imj 表示把第i行移至第j行的下方。

12.vi屏幕滚动命令

如果文件太大,一个屏幕无法显示全部内容,vi编辑器采用分屏显示的方法。使用屏幕滚动命令可以以屏幕为单位移动光标。

滚屏和分页命令 命令意义
Ctrl+u 将屏幕向前(文件头方向)翻滚半屏
Ctrl+d 将屏幕向后(文件尾方向)翻滚半屏
Ctrl+f 将屏幕向文件尾方向翻滚一整屏
Ctrl+b 将屏幕向文件首方向翻滚一整屏

可以在滚屏和分页命令之前加上一个数字 n,表示屏幕向前或向后翻滚 n 行,或者屏幕向前或向后移动 n 页。这些设置会被 vi 编辑器记住,下次用户在使用滚屏和分页命令时,还会滚动和上次设置相同的行数或者页数。

13.vi字符串检索命令

字符串检索命令要在末行模式下

  • / /string,从光标处向后寻找字符串string
  • ? ?string,从光标向前寻找字符串string
  • n 重复上一条检索命令
  • N 重复上一条检索命令,但是改变检索方向
  • g/ g/string 检索string,g/命令使光标停止在第一个检索到的 string 串的行首。

14.vi字符串替换命令

字符串替换命令在末行模式下

[range]s/s1/s2/[option]

  • 其中[range]表示检索范围,省略时表示当前行。
    • 1,10 表示从第一行到第10行
    • % 表示整个文件,同1,$
    • .,$ 表示从当前行到文件尾
  • s为替换命令
  • s1表示要被替换的串,s2为替换的串
  • option 表示选项
    • /g 表示再全局文件中进行替换
    • /c 表示再每次替换之前需要用户进行确认
    • 省略时表示仅对每行第一个匹配串进行替换

在执行替换命令指令时,可以加入简单的模式匹配

<word 表示以word为开头的单词

$s/\<abc/cde 表示在全文将以abc为开头的单词替换为cde

15.vi窗口切分命令

窗口切分命令在末行模式下

:sqlit文件名 可以实现窗口的切分,将窗口切分为上下两部分,下半部分对应原来的文件,上半部分对应新打开的文件。

有时用户需要在多窗口之间进行切换,vi编辑器提供了一组命令支持用户切换多个窗口。

切换命令 命令的意义
Ctrl+w,然后 j 移动光标到下面的一个窗口
Ctrl+w,然后 k 移动光标到上面的一个窗口
Ctrl+w,然后 q 关闭当前窗口
Ctrl+w,然后 w 移动光标到另一个窗口

16.vi属性设置命令

vi属性设置命令在末行模式下

  • 行号设置命令

    :set nu(nonu) 该命令显示行号(或者不显示行号)

  • 显示设置命令

    :set hlsearch(nohlsearch) 该命令设定搜寻字符串反白显示(或者不反白显示)。

  • 语法缩进命令

    :set autoindent 该命令显示程序语法自动缩进。

  • 文件存储命令

    :set backup(nobackup) 该命令自动存储备份文件(或者不自动备份文件)。

  • 显示选项命令

    :set all 该命令显示所有的选项。

  • 语法高亮命令

    syntax on(off) 该命令实现程序语法高亮显示(或者不高亮显示)。

  • 大小写区分命令

    :set ignorecase(noignorecase) 该命令忽略大小写(或者区分大小写)。

分类:

技术点:

相关文章: