vim - 如何在Vim中快速更改变量名称?

标签 vim variables refactoring

我正在使用 Vim 阅读大量包含许多单字母变量名的 C 和 Perl 代码。

在我阅读代码的过程中,最好有一些命令将变量的名称更改为更有意义的名称,这样我就可以更快地阅读其余部分。

Vim 中是否有一些命令可以让我快速完成此操作?

我认为正则表达式不起作用,因为:

  1. 相同的单字母名称在不同的作用域 block 中可能有不同的用途;和

  2. 相同的字母组合可以是另一个更长的变量名称、字符串文字或注释的一部分。

有已知的解决方案吗?

最佳答案

下面是如何重命名当前作用域中定义的变量{} .

将光标移至变量用法。按gd 。这意味着 - 将光标移至定义。 现在按[{ - 这将带您进入范围开始。 按V - 将打开视线选择。 按% - 会跳到对面}因此将选择整个范围。 按:s/ - 替代命令的开始。 <C-R>/ - 将插入与变量名称匹配的模式(按 gd 之前您所在的名称)。 /newname/gc<CR> - 将启动搜索并在每场比赛中进行确认替换。

现在您必须录制宏,甚至更好 - 映射一个键。

以下是最终的映射:

" For local replace
nnoremap gr gd[{V%::s/<C-R>///gc<left><left><left>

" For global replace
nnoremap gR gD:%s/<C-R>///gc<left><left><left>

将此放入您的 .vimrc或者只是执行。 按此后gr局部变量将带您到 :s命令,您只需输入 new_variable_name然后按Enter

关于vim - 如何在Vim中快速更改变量名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/597687/

相关文章:

vim: vnew,但接受缓冲区而不是文件名?

vim - 括号上的 tmux vim 显示问题

linux - 如何在linux中打开 '.. '文件?

wix - WIX:如何动态设置msi输出文件的名称

Java - 重构类似方法的代码

python - 使用 pyCharm 从 "user"重构为 "self.user"

vim 根据给定列排序

variables - 理解 Lisp 中变量重新分配的困难

具有数字范围的 C# 变量或数组(例如 1 - 100)

testing - 重构非回归测试时如何保护自己?