五.Linux基础之使用vi(vim)文本编辑器

  • Post author:
  • Post category:linux




使用Vi文本编辑器

vi是一个功能强大的全屏幕文本编辑工具,一直以来都作为类UNIX操作系统的默认文本编辑器。vim是vi文本编辑器(简称vi编辑器)的增强版本,在vi编辑器的基础上扩展了很多实用的功能,但是也习惯将vim称为vi。为了方便实用可以设置一个别名,将vi指向vim。



vi编辑器的工作模式

在vi编辑器中可以使用三种不同的工作模式,即

命令模式、输入模式和末行模式

在不同的模式中能够对文件进行的操作也不同。

  • ▶命令模式:启动vi编辑器后默认进入命令模式。改模式中主要完成如光标移动,字符串查找,以及删除,复制,粘贴文件内容等相关操作。

  • ▶输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正进行修改或添加新的内容。处于输入模式时,vi编辑器的最后一行会出现“–INSERT–”的状态提示信息。

  • ▶末行模式:该模式可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vi编辑器的最后会出现冒号“:”提示符。

三种模式切换:在命令模式→按“:”冒号→进入末行模式

按“a、i、o”可以进入输入模式

在输入模式、末行模式均可按Esc键返回命令模式。



命令模式的基本操作

执行单独的“vi”命令即可进入vi编辑器的命令模式,还会显示相关版本信息。但常见的使用方法是指定要编辑的文件名作为参数,若该文件不存在,则vi根据改文件名称打开一个新的空文件。

  • 模式切换:

    在命令模式中,按a、i、o等键切换至输入模式,同时确定插入点的位置和方式,以便录入文件内容。需要返回命令模式时,按Esc键即可。

    常见的几个切换键:

    ▶a:在当前光标之后插入内容。

    ▶A:在光标所在行的末尾(行尾)插入内容。

    ▶i:在当前光标之前插入内容。

    ▶I(大写i):在光标所在行的开头(行首)插入内容

    ▶o:在光标所在行的后面插入一个新行。

    ▶O:在光标所在行的前面插入一个新行。

  • 移动光标

    ▶光标的方向移动。直接按↑、↓、←、→四个方向键完成相应的光标移动。

    ▶翻页移动

    按Pag Down键或Ctrl + F组合键向下翻动一整页内容。

    按 Pag Up 键或 Ctrl + B 组合键向上翻动一整页内容。

    ▶行内快速跳转:

    按Home键或^键、数字0键将光标快速的跳转到本行的行首

    按End键或$键将光标快速跳转到本行的行尾

    ▶行间快速跳转:

    使用按键命令1G或gg可条转到文本内容的第一行

    使用按键命令G可跳转到文件最后一行。

    使用按键命令#G可跳转到文本的第#行(其中“#”号用具体的数字替换)。

    为了便于查看行间的跳转效果,在这里学习如何在vi编辑器里显示行号。

    切换到末行模式并执行“:set nu”显示行号,执行“set nonu”取消显示行号。

  • 复制、粘贴和删除

    ▶删除操作

    按x键或Delete键删除光标处的单个字符。

    使用按键命令dd删除当前光标所在行,使用#dd的形式还可以删除从光标处开始的#行内容(其中“#”号用具体的数字替换)

    使用按键命令d^删除当前光标之前到行首的所有字符。

    使用按键命令d$删除当前光标处到行尾的所有字符。

    ▶复制操作

    使用按键命令yy复制当前行整行的内容到剪贴板。

    使用#yy的形式还可以复制从光标开始的#行内容(其中“#”号用具体的数字替换)。复制的内容需要粘贴后才能使用。

    ▶粘贴操作

    在vi编辑器中,前一次删除或复制的内容将会保存到剪切板缓存区中,按p键即可将缓存区中的内容粘贴到光标位置处之后,按P键则会粘贴到光标位置处之前。

  • 查找文件内容

    在命令模式中,按/键可以输入指定的字符串,从当前光标处开始向后进行查找(按?键则向前查找)。完成查找后可以按n、N键在不同的查找结果中进行选择。被查找的字符串高亮显示,光标会自动移至第一个查找结果。

  • 撤销编辑及保存和退出

    在对文件进行编辑时,有时候需要对一些失误的编辑操作进行撤销,这时可以使用按键命令u、U键。

    ▶u键命令用于取消最近一次的操作并恢复操作结果,可以多次重复按u键恢复多步操作。

    ▶U键命令用于取消对当前行做的所有编辑。

    ▶当需要保存当前文件内容vi编辑器时,可以使用按键命令ZZ。



末行模式中的基本操作

在命令模式按 :键可以切换到末行模式,vi编辑器的最后一行会显示“:”提示符,用户可以在该提示符后输入特定的末行命令,如保存文件、退出编辑器、打开新文件、读取其他文件内容及字符串替换等丰富的功能操作。

  • 保存文件及退出vi编辑器

    ▶保存

    :w

    若要另存为其他文件,则需要制定新的文件名,必要时还需要指定文件路径。例:“:w /root/newfile” –该操作将把打钱编辑的文件另存到/root目录下,文件名为newfile

    ▶退出编辑器

    :q

    ▶若文件已经修改,则使用q是无法保存的,这时需要使用强制退出

    :q! –不保存强制退出

    ▶若要保存既要退出则可使用

    :wq 或 :x –实现

  • 打开新文件或读入其他文件内容

    ▶打开新的文件进行编辑

    在当前vi编辑器中,执行“:e 新的文件”形式的末行命令可以编辑新文件。

    例:e ~/123.txt –此操作将直接打开当前用户宿主目录中的123.txt进行编辑

    ▶在当前文件中读入其他文件内容。

    执行“:r 其它文件”形式的末行命令可以读入(Read)其他文件中的内容,并将其复制到当前光标所在位置。

    例:r /etc/123.txt –此操作将把文件/etc/123.txt中的内容复制到当前文件中。

  • 替换文件内容

    ▶%:在整个文件中进行查找并替换

    ▶n,m:在指定行数范围内的文件内容进行查找并替换

    ▶末尾的“-g”也是可选内容,不写时只对每一行的第一个匹配结果生效,写上时对替换范围内的每一行的所有匹配结果都生效。

    例:对第5行到15行的initdefault替换为DEFAULT

    :5,15 sub /initdefault/DEFAULT/g

    例:对整个文档范围的initdefault替换为DEFAULT

    :% sub /initdefault/DEFAULT/g

在vi编辑器的末行模式中,能够将文件中的特定的字符串替换成新的内容,当需要大批量修改同一内容时,使用替换功能将大大提高效率。

格式如下:

:【替换范围】 sub /旧的内容/新的内容【/g】

在上述替换格式中,主要关键字为sub(Substitute,替换)也可简写为s。替换范围是可选部分,默认对当前行内容进行替换。一般表示为以下两种形式:



版权声明:本文为weixin_43707076原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。