Vim 是 Vi 多
模式命令行 编辑器 的加强版,通常默认的Unix或Linux系统中都默认自带Vi
命令编辑器。当然,为了更好的体验,如果系统默认没有安装Vim,建议安装Vim。 通过本文的讲解,你将学会如何在Vim/Vi中快速的使用命令进行查找
替换文本。 首先,启动Vim/Vi编辑器,处于正常模式下。如果你不确定是否处于正常模式下,这时你可以按“ESC”,编辑器就会进入正常模式。 替换命令的格式一般如下: 该命令表示在[range]的每一行中搜索{pattern},并将其替换为{string}。 [count]是一个乘以命令的正整数。 如果没有给出[range]和[count],则仅替换当前行中找到的模式。 例如,要搜索当前行中字符串“foo”的首次出现,并将其替换为“bar”,可以使用: 要替换当前行中搜索到的所有内容,可以添加 g 标志: 如果想搜索和替换整个文件中的匹配内容,使用百分比字符 % 作为范围。此字符指示从文件第一行到最后一行的范围: 如果省略 {string} 部分即上面的bar,则将其视为空字符串,相当于将匹配到的内容替换为空,既删除匹配到的内容。 以下命令删除当前行中字符串“foo”的所有实例: 当然,除了作为分隔符外,还可以使用任何其他非字母数字单字节字符,而不是斜杠字符( / )。例如: 要确认每个替换,可以使用 c 标志。 替换前会询问: 按 y 替换匹配项,或按l替换匹配项并退出。 按 n 跳过当前匹配,按 q 或 Esc 退出替换。 a 选项替换匹配项和所有剩余匹配项。 若要向下滚动屏幕,请使用 CTRL + Y ,向上滚动,请使用 CTRL + E 。 还可以使用 正则表达式 作为搜索模式,例如:^ 符号表示与行首匹配, .* 表示匹配任意数量的字符。 默认情况下,搜索 *** 作区分大小写;搜索“FOO”将与“FOo”不匹配。 要忽略搜索模式的案例,请使用 i 标志: 另一种强制忽略案例的方法是在搜索模式后添加 \c 。例如, /Linux\c 执行忽略大小写搜索。 当未指定范围时,替换命令仅在当前行中 *** 作。 范围可以是一行,也可以是两行之间的范围。 行说明符之间可用英文 , 分隔 字符分割。 可以使用绝对行号或特殊符号指定范围。 例如,要在从第3行到第10行的所有行中将所有出现的“ foo”替换为“ bar”,可以使用: 该范围是包含范围的,这意味着该范围包括第一行和最后一行。. 字符表示当前行, $ 美元符号表示最后一行。 要在从当前行到最后一行的所有行中替换“ foo”: 也可以使用“ +”或“-”符号来设置行说明符,其后是从前一个行号添加或减去的数字。 如果省略符号后的数字,则默认为1。 例如,从当前行和接下来的四行开始,用“ bar”替换每个“ foo”,键入: 替代命令将模式作为字符串而不是整个单词查找。 例如,如果您正在搜索“ gnu”,则搜索查找匹配“ gnu”嵌入在较大单词(例如“cygnus” 或 “magnum”)中的情况。 要搜索整个单词,请键入\ <标记单词的开头,输入搜索模式,键入>标记单词的结尾: 例如,要搜索单词“ foo”,可以使用 \<foo\>: Vim会跟踪您在当前会话中运行的所有命令。 要浏览历史记录以查找先前的替代命令,请输入 :s 并使用向上或向下箭头键查找先前的替代 *** 作。 要运行该命令,只需按Enter。 您也可以在执行 *** 作之前编辑命令。 注释行(在行前添加#)从5到20: 取消注释行从5到20,恢复以前的更改: 将“苹果”,“橙色”和“芒果”的所有实例替换为“水果”: 删除每行末尾的空格: 搜索和替换在Vim中是一个非常强大的功能,学会使用它能使您可以快速更改文本,提高自己的工作效率。 欢迎通过查看我个人介绍信息,私信跟我沟通!简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具,就连 vim 的官方网站 ( http://www.vim.org ) 自己也说 vim 是一个『程序开发工具』而不是文字处理软件~ _ 。你可以将 vim 视作 vi 的进阶版本,vim 可以用颜色或底线等方式来显示一些特殊的信息。
基本上 vi 共分为三种模式,分别是『一般指令模式』、『编辑模式』与『指令列命令模式』。 这 三种模式的作用分别是:一般指令模式 (command mode)、编辑模式 (insert mode)、指令列命令模式 (command-line mode)。
以 vi 打开一个文件就直接进入一般指令模式了(这是默认的模式,也简称为一般模式)。在这个模 式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整列』来处 理文件内容, 也可以使用『复制、贴上』来处理你的文件数据。
在一般指令模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到你按下『 i, I, o, O, a, A, r, R 』等任何一个字母之后才会进入编辑模式。通常在 Linux
中,按下这些按键时,在画面的左下方会出现『 INSERT 或 REPLACE 』的字样,此时才可以进 行编辑。而如果要回到一般指令模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。
在一般模式当中,输入『 : / ? 』三个中的任何一个按钮,就可以将光标移动到最底下那一列。在 这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显 示行号等等的动作则是在此模式中达成的!
具体命令如下图所示(来自鸟哥的 linux 私房菜)
评论列表(0条)