关于vim:在vi中执行查找替换确认时如何返回上一步?

关于vim:在vi中执行查找替换确认时如何返回上一步?

在vim中执行查找替换确认时,如果需要返回一步,可以使用u命令撤销上一步操作。下面是详细的攻略和两个示例说明:

步骤

  1. 执行查找替换命令:在vim中,可以使用:%s/old/new/gc命令执行查找替换操作。其中,%表示对整个文件进行操作,s表示替换操作,old表示要替换字符串,new表示替换后的字符串,g表示全局替换,c表示确认每个替换。

  2. 确认替换:当vim执行查找替换命令时,会逐个显示要替换的字符串,并提示用户确认是否替换。如果要替换,可以输入`,如果不替换,可以输入n。如果需要返回上一步,可以输入u`撤销上一步操作。

  3. 继续替换:如果确认替换,可以输入y继续替换下一个字符串。如果不替换,可以输入n跳过当前字符串。

  4. 完成替换:当vim替换完所有要替换的字符串后,会显示替换的结果。如果需要保存文件,可以输入:w保存文件,如果不保存,可以输入:q!`退出vim。

示例一:查找替换并返回上一步

设我们有一个文件test,内容如下:

hello world
hello vim
hello vi

我们想要将文件中的所有hello替换为hi,并在每个替换前。我们可以使用以下命令:

:%s/hello/hi/gc

执行命令后,vim会逐个显示要替换的字符串,并提示用户确认是否替换。如果需要返回上一步,可以输入u撤销上一步操作。下面是示例操作:

  1. 执行命令:输入:%s/hello/hi/gc并按下回车键。

  2. 确认替换:vim会逐个显示要替换的字符串,并提示用户确认是否替换。如果需要返回上一步,可以输入u撤销上一步操作。

replace hello with hi (y/n/a/q/l/^E/^Y)?
  1. 返回上一步:输入u撤销上一步操作。
replace hello with hi (y/n/a/q/l/^EY)?
  1. 继续替换:输入y继续替换下一个字符串。
replace hello with hi (y/n/a/q/l/^E/^Y)? y
  1. 确认替换:vim会逐个显示要替换的字符串,并提示用户确认是否替换。如果需要返回上一步,可以输入u撤销上一步操作。
replace hello with hi (y/n/a/q/l/^E/^Y)?
  1. 继续替换:输入y继续替换下一个字符串。
replace hello with hi (y/n/a/q/l/^E/^Y)? y
  1. 确认替换:vim会逐个显示要替换的字符串,并提示用户确认是否替换。如果需要返回上一步,可以输入u撤销上一步。
replace hello with hi (y/n/a/q/l/^E/^Y)?
  1. 返回上一步:输入u撤销上一步操作。
replace hello with hi (y/n/a/q/l/^E/^Y)?
  1. 跳过当前字符串:输入n跳过当前字符串。
replace hello with hi (y/n/a/q/l/^E/^Y)? n
  1. 确认替换:vim会逐个显示要替换的字符串,并提示用户确认是否替换。如果需要返回上一步可以输入u撤销上一步操作。
replace hello with hi (y/n/a/q/l/^E/^Y)?
  1. 继续替换:输入y继续替换下一个字符串。
replace hello with hi (y/n/a/q/l/^E/^Y)? y
  1. 确认替换:vim会逐个显示要替换的字符串,并提示用户确认是否替换。如果需要返回上一步,可以输入u撤销上一步操作。
replace hello with hi (y/n/a/q/l/^E/^Y)?
  1. 继续替换:输入y继续替换下一个字符串。
replace hello with hi (y/n/a/q/l/^E/^Y)? y
  1. 完成替换:vim替换完所有要替换的字符串后,会显示替换的结果。
3 substitutions on 3 lines
  1. 保存文件:输入:w保存文件。
:w
  1. 退出vim:输入:q!退出vim。
:q!

示例二:查找替换并取消操作

假设我们有一个文件test.txt,内容如下:

hello world
hello vim
hello vi

我们想要将文件中的所有hello替换为hi,并在每个替换前确认。我们换了第一个字符串后,发现不想继续替换了,需要取消操作。我们可以使用以下命令:

:%s/hello/hi/gc

执行命令后,vim会逐个显示要替换的字符串,并提示用户确认是否替换。如果需要取消操作,可以输入q退出替换操作。下面是示例操作:

  1. 执行命令::%s/hello/hi/gc并按下回车键。

  2. 确认替换:vim会逐个显示要替换的字符串,并提示用户确认是否替换。如果需要取消操作,可以输入q退出替换操作。

replace hello with hi (y/n/a/q/l/^E/^Y)?
  1. 取消操作:输入q退出替换操作。
replace hello with hi (y/n/a/l/^E/^Y)? q
  1. 退出vim:输入:q!退出vim。
:q!

总结

在vim中执行查找替换确认时,如果需要返回上一步,可以使用u命令撤销上一步操作。如果需要取消操作,q退出替换。在实际使用中,可以根据需要灵活运用这些命令,提高工作效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于vim:在vi中执行查找替换确认时如何返回上一步? - Python技术站

(0)
上一篇 2023年5月7日
下一篇 2023年5月7日

相关文章

  • Vue中使用Tailwind CSS的具体方法

    Vue中使用Tailwind CSS的具体方法 简介 Tailwind CSS是一个高度可定制的CSS框架,它提供了大量的样式实用类,可以帮助我们快速构建现代化的用户界面。本文将详细介绍在Vue项目中使用Tailwind CSS的具体方法。 步骤 第一步:安装Tailwind CSS 首先,需要在Vue项目中安装Tailwind CSS。可以使用npm或ya…

    other 2023年6月28日
    00
  • Bootstrap每天必学之栅格系统(布局)

    Bootstrap每天必学之栅格系统(布局)攻略 什么是栅格系统? 栅格系统是Bootstrap中用于创建响应式布局的基础。它将页面水平划分为12个等宽的列,可以根据不同的屏幕尺寸来调整列的宽度。通过使用栅格系统,我们可以轻松地创建适应不同设备的布局。 栅格系统的基本结构 栅格系统由行(row)和列(column)组成。行用于包含列,而列则用于放置内容。以下…

    other 2023年7月28日
    00
  • php鸟哥:我也曾经是“不适合”编程的人

    php鸟哥:我也曾经是“不适合”编程的人 大家好,我是一名PHP程序员,也是一名《PHP核心》,《PHP扩展开发及内核应用》等著名技术书籍的作者,大家都喜欢叫我“PHP鸟哥”。 关于我和编程之间的故事,也许会让很多人惊讶,因为我曾经也是一名“不适合编程”的人。 当我还是一个初学者的时候,我并不觉得自己适合编程。我学习编程的过程中,遇到了很多挫折。每次遇到一个…

    其他 2023年3月29日
    00
  • js手机号码简单正则校验

    js手机号码简单正则校验 在网页开发中,我们常常需要对用户输入进行校验,以保证数据的合法性和正确性。手机号码是我们常常需要验证的一个输入项,本文将介绍如何使用Javascript实现手机号码的简单正则校验。 1. 正则表达式 正则表达式是一种用来匹配字符串的模式,它由一些特定的字符和元字符组成。在进行手机号码校验时,我们需要用到以下正则表达式: /^1[34…

    其他 2023年3月28日
    00
  • IP安全策略限制IP进入远程桌面设置方法

    IP安全策略限制IP进入远程桌面设置方法攻略 远程桌面是一种方便的远程访问工具,但为了确保安全性,我们可以通过设置IP安全策略来限制允许访问远程桌面的IP地址。下面是详细的设置方法攻略: 步骤一:打开“远程桌面设置” 首先,我们需要打开“远程桌面设置”来配置IP安全策略。按照以下步骤进行操作: 打开“开始”菜单,搜索并选择“远程桌面设置”。 在弹出的窗口中,…

    other 2023年7月31日
    00
  • keil5最新破解教程(可以使用到2032年哦!):

    Keil5最新破解教程(可以使用到2032年哦!) Keil5是一款以ARM Cortex-M为基础的嵌入式系统开发工具,由Keil Software发布。然而,它是一个商业软件,需要付费才能使用。但是,我们可以通过这篇文章介绍的方法进行破解,让你能够免费且长期地使用它。 步骤一:下载Keil5软件和破解文件 首先,我们需要下载Keil5软件和破解文件。你可…

    其他 2023年3月28日
    00
  • win7右键中添加【获取管理员权限】手动添加reg到注册表

    下面是完整的攻略: 1. 创建.reg文件并编辑 首先,我们需要创建一个.reg文件,并且编辑它,将相应的代码添加到文件中。在此过程中,我们将使用Windows自带的“记事本”工具进行编辑。 在桌面或文件夹中右键点击鼠标,选择“新建”–>“文本文档”–>命名为“AddAdmin.reg”。 双击打开“AddAdmin.reg”文件,在文件中输…

    other 2023年6月27日
    00
  • JS高级ES6的6种继承方式

    下面是JS高级ES6的6种继承方式的详细攻略。 1. 经典继承(原型链继承) 原理: 子类的原型为父类的一个实例,通过设置子类的原型链,使子类可以访问父类的属性和方法,也就实现了继承。 示例: // 父类 function Animal(name) { this.name = name; this.sayName = function() { console…

    other 2023年6月26日
    00
合作推广
合作推广
分享本页
返回顶部