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

yizhihongxing

关于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日

相关文章

  • cookie的domain

    当然,我很乐意为您提供有关“cookie的domain”的完整攻略。以下是详细的步骤和两个示例: 1. 什么是cookie的domain? 在Web开发中,cookie是一种存储在用户计算机上的小文件,用于跟踪用户的活动和存储用户的偏好设置。cookie的domain是指cookie所属的域名。当浏览器向服务器发送请求时,它会将cookie发送到与请求匹配的…

    other 2023年5月6日
    00
  • pythonitchat模块的使用 利用图灵机器人进行微信消息自动…

    Python itchat模块的使用:利用图灵机器人进行微信消息自动回复 介绍 itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。 本篇文章将会介绍如何使用itchat模块和图灵机器人API进行微信消息的自动回复。 准备工作 首先,我们需要安装itchat模块和requests模块。 安装itchat模块:pip install …

    其他 2023年3月28日
    00
  • 让你的QQ成为“精简”后的捍将—自定义QQ组件

    下面是让你的QQ成为“精简”后的捍将—自定义QQ组件的完整攻略。 什么是自定义QQ组件 QQ组件是指通过QQ的自定义功能,实现一些个性化的界面和功能,像主题、头像、资料卡、表情包等等,都可以进行自定义。自定义QQ组件是指自己编写插件或者下载别人的插件,来实现QQ界面和功能的修改。 如何自定义QQ组件 自定义QQ组件需要使用QQ自带的插件工具,它可以通过腾…

    other 2023年6月25日
    00
  • js进行redirect

    什么是重定向? 重定向是指用户从一个URL自动跳转到另一个URL地址的过程。重定向可以用于网站URL优化、网站的访问控制、网站的问统计等方面。 JavaScript进行重定向 JavaScript可以通过window.location对象进行重定向。以下是JavaScript进行重定向的步骤: 步骤1:使用window.location对象 使用window…

    other 2023年5月7日
    00
  • 几种Win7/8下创建管理员权限的CMD命令行的方法总结

    Win7/8下创建管理员权限的CMD命令行的方法有多种,下面将逐一介绍: 方法一:使用快捷键创建管理员CMD 打开“开始菜单”。 在搜索框中输入“cmd”。 鼠标右键点击“cmd.exe”。 选择“以管理员身份运行”。 此时即可在管理员权限下打开CMD命令行。 方法二:使用命令创建管理员CMD 打开“开始菜单”。 在搜索框中输入“cmd”。 在搜索结果中,找…

    other 2023年6月26日
    00
  • 设置Win10文件资源管理器默认打开“这台电脑”

    设置Win10文件资源管理器默认打开“这台电脑” 在Win10中,打开文件资源管理器默认会打开“最近访问的文件夹”,这对于有些用户来说可能不太方便,他们更喜欢默认打开“这台电脑”界面。以下是设置Win10文件资源管理器默认打开“这台电脑”的方法: 方法一:使用文件资源管理器选项 打开文件资源管理器,单击“文件”选项卡,在菜单中选择“更改文件和文件夹选项”。 …

    其他 2023年3月28日
    00
  • python获取指定目录下所有文件名列表的方法

    获取指定目录下所有文件名列表是Python中常见的问题。可以使用os模块中的方法完成这一任务。具体步骤如下: 导入os模块 首先需要导入os模块,使用方法是在脚本开头写上import os语句。 import os 指定目录 使用listdir()函数获取指定目录下的文件名列表,需要传入指定的目录路径。例如,获取当前目录下的所有文件名列表可以使用’.’表示当…

    other 2023年6月26日
    00
  • gitgitlab创建group

    以下是关于“GitLab创建Group”的完整攻略,包含两个示例。 背景 在GitLab中,Group是一种组织代码的方式。它可以将多个项目组织在一起为这些项目提供共的访问权限和设置。在GitLab,我们可以轻松地创建Group。 创建Group 在GitLab中,Group非常简单。具体步骤如下: 登录GitLab进入主页。 点击左侧导航栏中的“Group…

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