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

  • Post category:other

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

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

步骤

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

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

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

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

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

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

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/^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会逐个显示要替换的字符串,并提示用户确认是否替换。如果需要返回上一步,可以输入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/q/l/^E/^Y)? q
  1. 退出vim:输入:q!退出vim。
:q!

总结

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