将 vim 中的代码块的 camelCase 更改为 CONSTANT_CASE

Change camelCase to CONSTANT_CASE for the block of code in vim

我正在使用 vim 的 abolish 插件将 camelCase 变量更改为 CONSTANT_CASE (UPPER_CASE in abolish lang) using cru

我的问题:

我有一个包含 100 个这样的变量的枚举,所以我自然想知道有没有办法在代码块上使用 cru 命令。

例如

MacAddr0High        = 0x000,  // address0 high Register

MacAddr0Low         = 0x004,  // address0 low Register

MacAddr1High        = 0x008,  // address1 high Register

MacAddr1Low         = 0x00C,  // address1 low Register

MacAddr2High        = 0x010,  // address2 high Register

.

.

我只想更改变量名而不是描述

目前我能想到的就是使用 cru 然后使用 . 重复命令,这不是最好的方法。

我看了一些类似的问题,建议进入视觉模式并使用 ~ u / U

但是我无法在可视模式下使用cru。也许是因为它是一个插件。

我也可以使用 VsCodeVim,如果它有办法的话。

(不是你的直接问题,但是 lh-style 你可以使用 :%ConvertNames/^\k\+/SCREAMING_SNAKE_CASE

否则可能

:g/^MacA/normal cru

应该会按预期工作,因为您希望更改的内容位于该行的开头。否则会稍微复杂一些。

如评论中所述,您可以使用插件和全局命令解决它:

:g/MacAddr/norm cru

如果没有插件,搜索和替换可能会有帮助:

:%s/\v(\L\l+)(\L\l+)(\d+)(\L\l+)/\U_\U__\U/g

递归宏是第三个要寻找的东西。