我正在使用 Vim 阅读大量包含许多单字母变量名的 C 和 Perl 代码。
在我阅读代码的过程中,最好有一些命令将变量的名称更改为更有意义的名称,这样我就可以更快地阅读其余部分。
Vim 中是否有一些命令可以让我快速完成此操作?
我认为正则表达式不起作用,因为:
相同的单字母名称在不同的作用域 block 中可能有不同的用途;和
相同的字母组合可以是另一个更长的变量名称、字符串文字或注释的一部分。
有已知的解决方案吗?
最佳答案
下面是如何重命名当前作用域中定义的变量{}
.
将光标移至变量用法。按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/